【急】C语言的问题 我定义了长度为6的数组 但是我只想输入5个数甚至更少 然后我在赋值循环中用了break

代码如图 就不多说了 我刚开始学C 希望能够得到大牛的耐心讲解 谢谢了!!

运行结果如图 想知道如何解决那些随机数的出现 或者有更好地方法给数组赋值

在输出原数的时候换一个判断条件,你可以前面定义一个len=0来表示这个数的长度,然后每scanf()一次就+1,然后在用用i<len来作为条件就可以不打印后面那些没有输入的数了追问

请问能大概打一下代码么 因为我还没学到什么len = =

追答

#include

int main()
{
int num[6];
int len = 0;
int i = 0;
for(;i<5;i++)
{
scanf("%d",&num[i]);
len++;
if(getchar()=='\n') break;
}
for(i = 0;i < len;i++)
{
printf("%d",num[i]);
}
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-08
for(i=0;i<seifof(a)/sizeof(a[0]);i++)
{
printf(原数打印为*************)
}
seifof(a)/sizeof(a[0]) 这个可以求出个数追问

看不懂呀 我的代码没法修改吗

追答

不是改了吗 把for(int i=0;i<6;i++) 改成for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
是 sizeof 哦

追问

我们还没教到什么sizeof呢,不过我想问问是什么意思

追答

应该不会讲的 专科应该不会讲 如果有数据结构 应该会讲 sizeof 是就是计算数据内存的大小
比如int 是4个字节 int [6]=4*6=24字节
sizeof(a)就是=24
a[0] 相当于一个int 4个字节

sizeof(a)/sizeof(a[0])相当于
24/4=6 所以就有6个
当时a[n]要有值才会计算 就是你刚才的 定义int a[6] 但是你后3个没值 所以不会计算
12/4=3

相似回答