请帮忙看看这个程序

来源:百度知道 编辑:UC知道 时间:2024/05/28 09:16:35
main()
{
unsigned char cmd[100]={};
int num=0;
int i;

printf("input id:");
for(i=0;i<6;i++)
{
scanf("%d",&cmd[num++]);
}
for(i=0;i<6;i++)
printf("%d ",cmd[i]);
}
这个程序有错误么?我输入1 2 3 4 5 6程序就死了,输入1 2 3 4 5 6 7,输出了1 2 3 4 5 6,后来输入这个程序也死
我想从键盘输入六组数分别给数组中连续的六位,应该如何实现?
一开始输入了1 2 3 4 5 6回车,程序不执行,光标一直闪,不回到命令行,输入1 2 3 4 5 6 7回车,程序执行了,输出123456,为什么阿?
我只有六次循环怎么会输入7个数回车才可以呢?

你把第一句中
unsigned char cmd[100]={};
改成
unsigned char cmd[100];

就可以了。

连续输入就是这样保证两个数间有间隔即可,间隔可以是回车或者空格

不可以用{}这个符号单独使用的,原本这个符号是用来在当中初始化数组元素的,其中必须要有元素。现在LZ只是想初始化为空,就没必要这样写了。

你程序只能接受6个数字,当然要等6个数字接受完毕才会继续执行之后的打印程序段,因此你输入1 2 3 4 5 6 7后才输出,如果你输入6个数后按回车也是可以的

不是说你输入7个回车才可以,是你输入的数据是要通过回车来结束的,这7个数据程序只接受了前6个数据,最后那个就丢失了,就比如即使你输入10个数回车,也只接收前6个数。

输入的前6个数必须中间有间隔,即有空格,我估计你输入前6个数没有反映是因为你没有空格,程序仅仅当做了1个数据来接收

main()
{
unsigned char cmd[100];
int num=0;
int i;

printf("input id:");
for(i=0;i<6;i++)
{
scanf("%d",&cmd[num++]);
}
for(i=0;i<6;i++)
printf("%d ",cmd[i]);

getch();
}
你的程序编译都不通过。。。
我把你的程序改了一下
unsigned char cmd[100];
你说的情况我根本没发现。。。
请说的再详细一些!!!

输出123456 明明是六个啊?