C言語実習学生成績計算(構造体+関数+ポインタ)
1221 ワード
10人の学生がいて、各学生のデータには学号、名前と2つの授業の成績が含まれています.キーボードから10人の学生のデータを入力します.すべての学生の総成績を計算し、すべての学生の中で2つの授業の総得点が最も高い学生のデータを見つけます.プログラミング構想:まず学生情報を含む構造体タイプを定義し,このタイプに基づいて10要素の構造体配列を定義する.cal関数で総成績と最高点の学生の配列内のインデックスを計算し、メイン関数に学生データを入力し、cal関数を呼び出して所望の結果を得ます.
#include
struct student
{
int num;//
char name[20];//
int score[2];//
int sum;//
}stu[10];// 10 ,
void cal(int *sum,int *maxi)
{
int i,j,max;
*sum=0;
*maxi=0;
max=0;
for(i=0;i<10;i++)
{
for(j=0;j<2;j++)
{
stu[i].sum+=stu[i].score[j];
}
*sum+=stu[i].sum;
if(stu[i].sum>max)//
{
max=stu[i].sum;
*maxi=i;
}
}
}
int main()
{
int i,sum,maxi;
for(i=0;i<10;i++)
{
printf(" %d :",i+1);
scanf("%d%s%d%d",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1]);
}
cal(&sum,&maxi);
printf(" %d, %d\t%s\t%d\t%d\t%d
",sum,stu[maxi].num,stu[maxi].name,stu[maxi].score[0],stu[maxi].score[1],stu[maxi].sum);
return 0;
}