1. 程式人生 > >C語言:統計學生成績並輸出

C語言:統計學生成績並輸出

統計學生成績並輸出最高分

題目要求:有50名學生,每個學生的資料包括學號,姓名,3門課的成績,從鍵盤輸入50名學生資料,要求打印出每門課的平均成績,以及三門課總分最高的學生資料(包括學號,姓名,3門課的成績,3門課的總分)。

#include<stdio.h>
#define N 50
struct student
{
	int num;
	char name[10];    //學生姓名
	int course1;     // 課程1的分數
	int course2;     //課程2的分數
	int course3;     //課程3的分數
	int total;      //總分
}; //定義結構體 void main() { struct student st[N]; //宣告結構體陣列 int i,max,maxi; //maxi用來記錄3門課成績最高的學生在陣列中的位置 float average1 = 0, average2 = 0, average3 = 0; for(i = 0; i < N; i++) { scanf("%d",&st[i].num); scanf("%d",&st[i].course1); average1 = average1 + st[i].course1; //統計課程1的總分
scanf("%d",&st[i].course2); average2 = average2 + st[i].course2; //統計課程2的總分 scanf("%d",&st[i].course3); average3 = average3 + st[i].course3; //統計課程3的總分 scanf("%s",st[i].name); st[i].total = st[i].course1 + st[i].course2 + st[i].course3; } average1 = average1 / N; average2 =
average2 / N; average3 = average3 / N; max = st[0].total; for(i = 1; i < N; i++) if(st[i].total >= max) { max = st[i].total; maxi = i; } printf("三門課的平均成績:\n"); printf("%.2f %.2f %.2f\n",average1,average2,average3); printf("總分最高的學生:\n"); printf("學號 姓名 課程1 課程2 課程3 總分\n"); printf("%d %s %d %d %d %d\n" , st[maxi].num , st[maxi].name , st[maxi].course1 , st[maxi].course2 , st[maxi].course3 , st[maxi].total); } ```C