不只是一个i的问题,还有 scanf("%d",&a[10]); 应该改为 scanf("%d",&a[i]); 这两句应该用个for来循环 if(max<a[i]) max=a[i];
改成这样就对啦 for(i=0;i<10;i++) if(max<a[i]) max=a[i];
下面是经过我改的程序 main() { int a[10],i; int max=0; printf("input 10 num:"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=0;i<10;i++) if(max<a[i]) max=a[i]; printf("the max is %d\n",max); getch(); }
main() { int a[10],i; int max=0; printf("input 10 num:"); for(i=1;i<10;i++)//i=0 scanf("%d",&a[10]);//你这里输入了10个数
printf("\n"); //此时i=10
if(max<a[i])//那么这里max只和一个不合法的数(不存在a[10])比较,此处应为
max=a[i];//for(i=0;i<10;i++)if(max<a[i])max=a[i]; printf("the max is %d\n",max); }