|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 sunnyrubik 于 2018-10-26 12:07 编辑
eg.123变成321
- #include<stdio.h>
- #include<stdlib.h>
- int fanzhuan(int x);
- int main()
- {
- int a;
- printf("请输入数字:\n");
- scanf("%d",&a);
- printf("%d",fanzhuan(a));
- system("pause");
- return 0;
- }
- int fanzhuan(int x)//将1-99999的数字进行翻转。eg.123-321
- {
- int a,b,c,d,e;
- a=x/10000;//万位上的数字
- b=(x-a*10000)/1000;//千位上的数字
- c=(x-a*10000-b*1000)/100;//百位上的数字
- d=(x-a*10000-b*1000-c*100)/10;//十位上的数字
- e=x-a*10000-b*1000-c*100-d*10;//个位上的数字
- if(a>=10)printf("您输入的数字太大了\n");
- if(a==0&&b==0&&c==0&&d==0&&e!=0)printf("%d",e);
- if(a==0&&b==0&&c==0&&d!=0) printf("%d",10*e+d);
- if(a==0&&b==0&&c!=0)printf("%d",100*e+10*d+c);
- if(a==0&&b!=0)printf("%d",1000*e+100*d+10*c+b);
- if(a!=0&&a<10)printf("%d",10000*e+1000*d+100*c+10*b+a);
- }
复制代码
虽然这样做比较傻,但为什么输入123后出来的是3213,输入5423后出来的是32454呢?(前面的数都是好好翻转了,怎么最后面多了一个莫名其妙的数字呢?)
请加入适当的空格…… - #include<stdio.h>
- #include<stdlib.h>
- void fanzhuan(int x);
- int main()
- {
- int a;
- printf("请输入数字:\n");
- scanf("%d", &a);
- fanzhuan(a); // <---------------------
- system("pause");
- return 0;
- }
- void fanzhuan(int x)
- {
- int a,b,c,d,e;
- a = x/10000;
- b = (x - a*10000)/1000;
- c = (x - a*10000 - b*1000)/100;
- d = (x - a*10000 - b*1000 - c*100)/10;
- e = x - a*10000 - b*1000 - c*100 - d*10;
-
- if(a >= 10)
- printf("您输入的数字太大了\n");
- if(a == 0 && b == 0 && c == 0 && d == 0 && e != 0)
- printf("%d", e);
- if(a == 0 && b == 0 && c == 0 && d != 0)
- printf("%d",10*e + d);
- if(a == 0 && b == 0 && c != 0)
- printf("%d",100*e + 10*d + c);
- if(a == 0 && b != 0)
- printf("%d",1000*e + 100*d + 10*c + b);
- if(a != 0 && a < 10)
- printf("%d",10000*e + 1000*d + 100*c + 10*b + a);
- }
复制代码
|
|