解题思路:
用数组存储每一位的数,就可以任意正序逆序输出
注意事项:
注意逆序输出和正序输出i的范围
在while循环里i要自加和赋初值
参考代码:
//给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
#include<stdio.h>
int main()
{
int number,cnt=0,a[5],i=0;
scanf("%d",&number);
while(number>0)
{
cnt++;
a[i]=number%10;
i++;
number/=10;
}
printf("%d\n",cnt);
for(i=cnt-1;i>=1;i--)
printf("%d ",a[i]);
printf("%d\n",a[0]);
for(i=0;i<cnt;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
0.0分
0 人评分
#include<stdio.h> int main() { int i=0,x,N,a[5]; scanf("%d",&N); while(N>0) { a[i]=N%10; N=N/10; i++; } printf("%d\n",i); x=i; for(i=i-1;i>=0;i--) { printf("%d ",a[i]); } printf("\n"); for(i=0;i<x;i++) { printf("%d",a[i]); } }
为什么回多出一个0来
ELIS 2017-11-13 18:11:38 |
如果输出数组的话在a[0]的位置会出现一个莫名其妙的数字,如果初始化的话,会多一个0
为什么改成这样输出答案是这样的?有什么解决方案吗 for(i=cnt-1;i>=0;i--) printf("%d ",a[i]); for(i=0;i<cnt;i++) printf("%d",a[i]); 5 1 2 3 4 5 54321