c语言错误求解
分步执行的截图.zip
(3.11 KB)
问题: 输入10个学生3门课的成绩用函数求 找出总分最高的分数所对应的学号和总成绩
代码:
#include<stdio.h>
int k=0;
int sum(int c1,int c2,int c3)//求总份额函数
{
int temp=c1+c2+c3;
return temp;//返回三个成绩的和
}
int Max(int *a,int val)//找出最大的总分
{
int i=0,j,temp=0;
for(j=1;j<val;j++){
if(a[k]<a[j]){
k=j;
}
if(i!=k){
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
return a[0];
}
int main()
{
int Grade[][3]={0};//用来存储10个学生的三门成绩
int Sum[10]={0};//用来存储10个学生的总分
char number[10][10];//用来存储学生的学号
printf("\n\n**********Please intput the number and the grades the students get**************\n");
for(int i=0;i<10;i++){
printf("Number:");
scanf("%s",number[i]);
printf("\nFirst Grade:");
scanf("%d",&Grade[i][0]);
printf("\nSecond Grade:");
scanf("%d",&Grade[i][1]);
printf("\nThird Grade");
scanf("%d",&Grade[i][2]);
printf("\n\n*************************************\n\n");
Sum[i]=sum(Grade[i][0],Grade[i][1],Grade[i][2]);
}
printf("\n********* The highest grade is: %d",Max(Sum,10));//用函数输出最大的总分
printf("\n********* His number is: %s\n",number[k]);//输出成绩最高者的学号,即二维数组中第k行中数据,即第k个学生的学号
}
循环体中那段,为什么我在输入学生数据的时候只有i=0时,数据是保存在Grade[i][0],Grade[i][1]Grade[i][2]中,之后的输入数据就保存到Sum[]中了??
如附件图中6,7,9是我第二次循环式,输入给Grade[][]的数据,却跑到了Sum[]中?