天天看點

C語言練習——輸出學生平均成績案例描述案例分析案例實作

輸出學生平均成績

  • 案例描述
  • 案例分析
  • 案例實作
    • 案例設計
    • 完整代碼

案例描述

  一個小組中有3個學生,每個學生有3門課程的成績需要統計。案例要求通過程式設計依次輸入學生的學号、姓名和三門課程的成績,計算出平均成績并依次把每個學生的學号、姓名和平均成績列印在螢幕上。

案例分析

  很顯然,用剛剛學過的結構體存放學生的資訊是最好的選擇。一個結構體變量可以存儲一組資料,如一個學生的學号、姓名和成績等。但是本案例中有3個學生的資訊需要存儲,是以需要采用結構體數組。與前面講解的數組不同,結構體數組中的每個元素都是結構體類型的,它們都具有若幹個成員項。

案例實作

案例設計

(1)定義一個結構體數組,用來存放3個學生的資訊;

(2)用for循環依次讀取3個學生的資訊,再用for循環分别計算成績總和并求出平均值。

完整代碼

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct student                     //定義結構體數組
{
	char num[6];
	char name[10];
	int score[3];
	float average;
}stu[5];
int main()
{
	int i, j, k;
	float sum;
	for (i = 0; i < 3; i++)      //通過循環依次輸入三個學生的資訊
	{
		printf("Please input the information of the students:\n");
		printf("Number: ");
		scanf("%s", stu[i].num);  //輸入學号
		printf("Name: ");
		scanf("%s", stu[i].name); //輸入姓名
		sum = 0;
		for (j = 0; j < 3; j++)  //輸入三門成績
		{
			printf("Score%d: ", j + 1);
			scanf("%d", &stu[i].score[j]);
			sum += stu[i].score[j];         //累加成績
		}
		stu[i].average = sum / 3;          //算出平均成績
		printf("----------------------------------------------------\n");
	}
	for (k = 0; k < 3; k++)  //最後輸出三個學生的資訊以及平均成績
	{
		printf("Number: %s\n", stu[k].num);
		printf("Name: %s\n", stu[k].name);
		printf("Average score: %.1f\n", stu[k].average);
	}
	return 0;
}
           

  運作結果如下圖所示:

C語言練習——輸出學生平均成績案例描述案例分析案例實作

繼續閱讀