解题思路以及注意事项:
每一个程序员都有自己独特的写法,针对同一问题的解法也是仁者见仁,智者见智,这道题就深刻地阐释了这个真理。
好,下面大家看看小方的代码,小方会在代码之中给大家讲解小方的解题思路!
实例代码:
#include"stdio.h" int main() { int x,i,item=10000,number,size;//x用来存用户输入的数,i为控制循环常用的数,item为计算位数的数 scanf("%d",&x); //number为替代x的数,以保证x的完整,size为存位数的数,以便后面用 for(i=5;i>0;i--,item/=10) { if(x/item) // 循环判断位数 { printf("%d\n",i); size=i; break; } } for(i=0,item=1;i<size;i++) { item*=10; //得出像10000 1000 100 10这样的数,用到下面的循环中去 } for(i=5,number=x;i>0 && number!=0;i--,item/=10) { if(number/item==0)continue; //保证小于五位的数分开输出前面不会有0 if(i==1) printf("%d",number/item);//最后一位后面没有0 else printf("%d ",number/item);//输出 number%=item; } printf("\n"); for(i=5,number=x;i>0&&number!=0;i--)//逆序输出,相比前面的简单很多,相信大家看的懂 { printf("%d",number%10); number/=10; } return 0; }
还有不懂的请在评论区留言,小方会为您解答
0.0分
36 人评分
#include <stdio.h> int main() { int x,n=0,i,a[5]; scanf("%d",&x); for(i=0;i<=5;i++) { a[i]=x%10; x=x/10; n++; } printf(" %d\n",n); for(i=5;i>=0;i--) { printf(" %d",a[i]); } printf("\n"); printf(" "); for(i=0;i<=5;i++) { printf("%d",a[i]); } return 0; } 为什么输入12345输出是5 4 3 2 1 0 谢谢
include<stdio.h> int main() { int b,i,a; i=1; scanf("%d",&b); a=b; while(a>10) { a=a/10; i++; } printf("%d",i); return 0; } 我是求位数,为什么编译错误?求指点
wwwanna 2021-10-07 21:47:02 |
include前面少了#,main前面不用int
测试1230的时候第二个数据输出的是1 2 3
五仁月饼 2021-02-22 14:10:03 |
for(i=5,number=x;i>0 && number!=0;i--,item/=10)因为这个for循环中的条件不成立了,所以后面呢的0都不会输出了。
#include<stdio.h> int main() { int chr[6]={0}; int num,num_1,x = 0; scanf("%d",&num); num_1=num; //判断几位数 while (num_1) { num_1 = num_1 / 10; x++; } printf("%d\n",x); //取值 for(int i=0;i<=5;i++) { chr[i]=num%10; num=num/10; } //正序输出 最后以为没有空格 for(int s =x-1; s>0;s--) { printf("%d ",chr[s]); } printf("%d\n",chr[0]); //逆序输出 for(int j =0; j<x;j++) { printf("%d",chr[j]); } return 0; } 欢迎交流
#include<stdio.h> int main() { int n, x=0, a, b, c, d, e; scanf("%d",&n); a=n/10000; b=((n%10000)/1000); c=(((n%10000)%1000)/100); d=((((n%10000)%1000)%100)/10); e=((((n%10000)%1000)%100)%10); for(x=0;n>0;x++) { n=n/10; } printf("%d\n",x); printf("%d %d %d %d %d\n",a,b,c,d,e); printf("%d%d%d%d%d",e,d,c,b,a); return 0; } 评论一下我这个怎么样
噩梦 2021-01-15 14:34:56 |
你这个系统通过了吗?
c = Num; for (i = size, x = 0; Num > 0; i--, x++) { a[x] = Num / b; //储存每一位数上面的数字 Num = Num % b; if (x == size - 1) // 确保最后一个数字后面没有空格 { printf("%d", a[x]); } else printf("%d ", a[x]); b /= 10; } printf("\n"); //全部归位 x = 0; i = size; Num = c; for (b = 10; i > 0; i--, x++) { a[x] = Num % b; // 8123 Num = Num / b; printf("%d", a[x]); } return 0; }
gonna 2020-11-04 18:54:39 |
感觉从开头就看不懂
#include <stdio.h> int main(void) { int Num = 0; //输入的数字 int b = 10000; //判断位数 int i = 0; //控制循环 int size = 0; //储存循环次数 int c = 0; //储存Num scanf_s("%d", &Num); //判断循环位数 if (Num >= 100000) { printf("请输入一个五位数\n"); scanf_s("%d", &Num); } for (i = 5; i > 0 && b != 0; b /= 10, i--) { if (Num / b) { printf("%d\n", i); //输出位数 break; } } b = 1; size = i; //输出每一位数上面的数字 int a[100] = { 0 }; int x = 0; for (i = 1; i < size; i++) { b *= 10; } c =
zgy 2021-07-18 22:02:40 |
错了