请指出以下程序出错的原因,并给出修改方法,源程序可在第五单元的源程序中下载,文件名为“arrayMaxMinError02.c”。 /* 找出某班级中数学成绩最高分和最低分,并指出其相对应的位置。要求:学生成绩使用数组存储。*/ #include
void main() { int cj[100],rs,i,zdz,zxz,zdzxb,zxzxb; //数组cj存储学生的成绩,rs存储学生人数,i循环控制,zdz存储最高分,zxz存储最低分,zdzxb存储最高分下标,zxzxb存储最低分下标 i = 0; printf("请输入学生的成绩,以负数结束输入:"); scanf("%d",&cj[i]); while( cj[i] >=0 ) { scanf("%d",&cj[i]); i ++; } rs = i; zdz = zxz = cj[0]; for( i = 1; i < rs; i++) { if( cj[i] > zdz ) { zdz = cj[i]; zdzxb = i; } if( cj[i] < zxz ) { zxz = cj[i]; zxzxb = i; } } printf("第%d个数是最高分,其值是%d.\n第%d个数是最低分,其值是%d.\n",zdzxb+1,zdz,zxzxb+1,zxz); }