解题思路:首先应该判断输入的数字是否在条件范围内,如果超出范围需要设置相应程序进行重新输入,然后在判断知道输入正确为止。
其次应该分清程序所要实现的功能,然后一个一个的实现(此题中为 : 判断输入数字为几位数 ; 分别显示每一位的具体数字;将数字的每一位倒序排列 )
简单的功能我直接在主程序中实现了(不规范行为嗷,后面两个功能的话,我设置了对应的函数(啊,其实就是把第一个函数照搬过来,然后就是 t=a,a=b,b=t这些简单方法)
注意事项:
注意数组的第一位为a[0]
参考代码:
#include <stdio.h> void content(int i,int j); void reverse(int i,int j); void main() { int a,num,flag=0; scanf("%d",&a); while(a/10000>=10) { printf("输入数字超出范围请重新输入:\n"); scanf("%d",&a); } if(a/10000<10) flag=1; //确定位数 if(flag==1) { if(a>=0&&a<10) num = 1; else if(a>=10&&a<100) num = 2; else if(a>=100&&a<1000) num = 3; else if(a>=1000&&a<10000) num = 4; else num = 5; printf("%d\n",num); content(num,a); printf("\n"); reverse(num,a); } } // 单独输出所输入数据的每一位数字 void content(int i,int j)//位数,输入数据 { int a[i-1],k; if(i==1) a[0]=j; else if(i==2) { a[0]=j/10; a[1]=j%10; } else if(i==3) { a[0]=j/100; a[1]=j%100/10; a[2]=j%10; } else if(i==4) { a[0]=j/1000; a[1]=j%1000/100; a[2]=j%100/10; a[3]=j%10; } else { a[0]=j/10000; a[1]=j%10000/1000; a[2]=j%1000/100; a[3]=j%100/10; a[4]=j%10; } for(k=0;k<i;k++) printf("%d\t",a[k]); } // 输入数据每一位数,然后按倒序排列 void reverse(int i,int j)//位数,输入数据 { int a[i-1],k,t; if(i==1) a[0]=j; else if(i==2) { a[0]=j/10; a[1]=j%10; } else if(i==3) { a[0]=j/100; a[1]=j%100/10; a[2]=j%10; } else if(i==4) { a[0]=j/1000; a[1]=j%1000/100; a[2]=j%100/10; a[3]=j%10; } else { a[0]=j/10000; a[1]=j%10000/1000; a[2]=j%1000/100; a[3]=j%100/10; a[4]=j%10; } for(k=0;k<(i/2);k++) { t=a[k]; a[k]=a[i-k-1]; a[i-k-1]=t; } for(k=0;k<i;k++) printf("%d",a[k]); }
0.0分
26 人评分
//数字的处理与判断 #include<stdio.h> int main() { int x,a[10],p,s=0; scanf("%5d",&x); p=x; while (x!=0) { a[s] = x%10; x/= 10; s++; } printf("%d\n",s); for (int i=s;i!=0;i--) { printf("%d ",a[i-1]); } printf("\n"); for (i=0;i!=s;i++) { printf("%d",a[i]); } }
#include<stdio.h> #include<math.h> int main() { int x,i,j,a=0,temp; int aa[10]={0}; scanf("%d",&x); for(i=10;i>0;i--) { j=pow(10,i); if(x/j) { a=i+1;break; } } printf("%d\n",a); temp=x; for(i=0;i<a;i++) { aa[i]=temp%10; temp=temp/10; } for(i=a-1;i>=0;i--) { printf("%d ",aa[i]); } printf("\n"); for(i=0;i<a;i++) { printf("%d",aa[i]); } return 0; }
【回文数(二)】 (C语言代码)浏览:943 |
妹子杀手的故事 (C语言代码)浏览:738 |
Hello, world! (C语言代码)浏览:1322 |
字符串输入输出函数 (Java代码)浏览:1500 |
printf基础练习2 (C语言代码)浏览:605 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:543 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)for循环浏览:1178 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:795 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:1052 |
WU-蓝桥杯算法提高VIP-勾股数 (C++代码)浏览:1686 |