华为机试-将整数倒序输出,剔除重复数据

来源:互联网 发布:网络信息安全大会 编辑:程序博客网 时间:2024/06/08 01:30

输入一个整数,如12336544,或1750,然后从最后一位开始倒过来输出,最后如果是0,则不输出,输出的数字是不带重复数字的,所以上面的输出是456321和571。如果是负数,

输入-175

输出-571

首先按照是整数的输入做,但这样有范围的限制,超过int的表示范围,程序失败。第二个程序是字符串的输入

*****************将整数倒序输出,剔除重复数据**********************************************************这个程序只能是整数范围内*********#include<stdio.h>#include<string.h>int main(){int n,tmp=0;int flag=0;int a[10]={0};scanf("%d",&n);if(n<0){flag = 1;n=-n;}while(n != 0){if(a[n%10]==0){tmp*=10;tmp+=n%10;a[n%10]=1;}n/=10;}if(flag==1)tmp=-tmp;printf("%d\n",tmp);}
*************************下面以字符串的形式输入***************#include<stdio.h>#include<string.h>int main(){char input[100]={0};char out[100]={0};int i,len,j;int a[10]={0};i=j=len=0;gets(input);len=strlen(input);if(*input=='-'){out[0]='-';j=1;i=1;}for(len--;len>=i;len--){if(a[input[len]-'0']==0){out[j++]=input[len];a[input[len]-'0']=1;}}out[j]='\0';printf("%s",out);return 0;}



0 0
原创粉丝点击