原题链接:[编程入门]数字的处理与判断
解题思路以及注意事项:
每一个程序员都有自己独特的写法,针对同一问题的解法也是仁者见仁,智者见智,这道题就深刻地阐释了这个真理。
好,下面大家看看小方的代码,小方会在代码之中给大家讲解小方的解题思路!
实例代码:
#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分
30 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include <stdio.h> int main() { int num;//键盘输入数 int count = 0;//位数计算 int sum = 0;//倒序数 int a[5] = {0};//输入数各位数字值 printf("请输入一个不大于5位的数\n"); scanf("%d",&num); do { count++; a[count-1] = num%10;//存各位数字值 sum*=10; //实现位数左移,以便下一步骤以个位加入 sum += num%10;//每次获得一位数 num/=10;//将已经获得的位数去掉 } while (num != 0); printf("%d\n",count);//位数 for(int i = count-1; i >= 0;i --) printf("%d ",a[i]); printf("\n%d\n",sum); return 0; } //想请问下各位兄弟,为什么我这个代码不对?有点搞不懂.#include<stdio.h> #include<math.h> int main() { int i=0,n=0,k=0,m=0,y=0,number=0; scanf("%d", &i); k = i; //用k保存输入的数 while (i > 0) { i /= 10; n+=1; } printf("%d\n", n); y = n; //用y保存输入的位数 for (int j = 0; j < y; j++) { n--; m = pow(10,n); number = (k / m)%10 ; printf("%d ", number); } printf("\n"); for (int l = 0; l < y; l++) { m = pow(10, n); number = (k / m) % 10; printf("%d", number); n++; } return 0; }#include<stdio.h> int main() { int a[5],b,i,n,j,r,k; scanf("%d",&b); for (i=0;r!=0;i++) { a[i]=b%10; b=b/10; if (a[i]==0 && b==0) { r=0; n=i; } } printf("%d\n",n); for (j=n-1;j>-1;j--) { if(j>0) printf("%d ",a[j]); else printf("%d",a[j]); } printf("\n"); for (k=0;k<n;k++) printf("%d",a[k]); } 求解 哪里错了/流泪#include<stdio.h> #include<string.h> int main() { char c[5]; int n,i; gets(c); n=strlen(c); printf("%d\n",n); for(i=0;i<n-1;i++) printf("%c ",c[i]); printf("%c",c[n-1]); printf("\n"); for(i=n-1;i>=0;i--) printf("%c",c[i]); printf("\n"); return 0; } 请问这样写为什么不对呢?