编程提问

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:46:23
这到题我想了很久还是不知道错在哪里 每次输机结果都是错的
请哪位高人帮我解答这难题 谢谢!
#include <stdio.h>
viod main()
{int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
scanf("%d",p++);
printf("\n");
for(i=0;i<10;i++,p++)
printf("%d",*p);
printf("\n");
}
运行结果却是 :
1 2 3 4 5 6 7 8 9 0
22153 234 0 0 30036 25202 11631 8259 8237 28483
这是怎么回事啊?

第一行viod改正为void
在第二个for循环前面加上语句p=a;
改正后的程序如下:

#include <stdio.h>
void main()
{
int *p,i,a[10];
p=a;

for(i=0;i<10;i++)
scanf("%d", p++);
printf("\n");

p = a;
for(i=0;i<10;i++, p++)
printf("%d ", *p);
printf("\n");
}
经过编译、运行,完全正确。

p=a还是p==a吧? 一个赋值一个比较,别弄错了。