C语言输出结果是一串很奇怪的数字

如题所述

这些奇怪的数字是地址,因为按你这个程序走,应该是顺序输出b[4],b[3],b[2],b[1],b[0],但是b[4]和b[3]在你输入567的时候是没有存入数的,所以输出不对
这样就好了:
#include<stdio.h>
int main()
{
int a,i,s;
int b[5];
scanf("%d",&a);
for(i=0;i<5;i++)
{
b[i]=a%10;
a=a/10;
if(a<=0) break;
}
printf("%d\n",i+1);
s=i;
for(;s>=0;s--)
printf("%d",b[s]);
printf("\n");
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-02
是你的数组后面的元素没有赋值,输出的不确定的值。这个题不必要数组来实现.
你不是想输入一个数然后输出他是几位数?还有这几位数是什么么?
直接在每次循环的过程中将这些数字输出即可,再者你每次输入的数据的位数不同,必定会浪费内存
第2个回答  2014-12-02
b[4]和b[3]没有赋初始值,所以是随机值,应该是定义数组b时初始化,int b[5]={0};
第3个回答  2014-12-02
楼主这个程序你要干嘛。。。
第4个回答  2014-12-02
你给b[5]赋初值为0
相似回答