错误在:while((*p++=getchar())!='a');
此时,当对数组输入数字时,存入数组中的是你输入数字的ASCII值。所以你无法得到正确答案。因为你定义的数组是整型,输入时却用字符型输入 。
我给你改一下:
# include
# include
int main(void)
{
int a[30],*p=a,*q=a,sum=0;
printf("请输入数字,以0结束!\n");
do
{
scanf("%d",&*p);
} while (*(p++)!=0);
for(p=&a[0]; *p!=0; p++)
{
if((p-q)==5)
{
printf("\n");
q=p;
}
printf("%d ",*p);
if(*p%2==0)
sum += *p;
}
printf("\n");
printf("偶数之和为:");
printf("sum = %d",sum);
system("pause");
return 0;
}
while循环就错了
getchar获得的是字符,而你想要的是整型。
比如在你的程序我打了1,那就是49,因为它会把字符转换成ascill码值放入数组中