某班有5個學生, 每名學生的數據包括學號,姓名,3門課成績,從鍵盤上輸入5名學生數據,要求打印出3門課的總平均成績以及最高分的學生數據(包括學號,姓名,3門課成績)


 1 #define _CRT_SECURE_NO_WARNINGS        //關閉安全檢查
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 
 5 //定義結構體類型
 6 struct ST
 7 {
 8     int ID;
 9     char name[20];
10     float score[3];
11 };
12 
13 //方法1 : 結構體數組作為函數參數 開銷大
14 float avg(struct ST sts[], int n)
15 {
16     float sum = 0, avg;
17     for (int i = 0; i < n; i++)
18     {
19         for (int j = 0; j < 3; j++)
20         {
21             sum += sts[i].score[j];
22         }
23     }
24     avg = sum / n / 3;
25     return avg;
26 }
27 
28 //方法2 : 結構體數組指針作為函數參數 開銷小
29 float avg1(struct ST *p, int n)
30 {
31     float sum = 0, avg;
32     for (int i = 0; i < n; i++)
33     {
34         for (int j = 0; j < 3; j++)
35         {
36             sum += p[i].score[j];
37         }
38     }
39     avg = sum / n / 3;
40     return avg;
41 }
42 
43 //輸出最高分數學生信息
44 void high(struct ST *p, int n)
45 {
46     int index = 0;
47     float max = 0, sum = 0;
48     for (int i = 0; i < n; i++)
49     {
50         for (int j = 0; j < 3; j++)
51         {
52             sum = p[i].score[0] + p[i].score[1] + p[i].score[2];
53             if (sum > max)
54             {
55                 max = sum;
56                 index = i;
57             }
58         }
59     }
60     printf("最高學生信息為:\n");
61     //(p+index)->ID 等價於 p[index].ID
62     printf("學號:%d\n", (p+index)->ID);
63     printf("姓名:%s\n", p[index].name);
64     printf("成績:%.2f, %.2f, %.2f\n", p[index].score[0], p[index].score[1], p[index].score[2]);
65 }
66 
67 int main()
68 {
69     int i, j;
70     struct ST sts[5];
71     for (i = 0; i < 5; i++)
72     {
73         printf("請輸入第%d個學生信息\n", i+1);
74         scanf("%d", &sts[i].ID);
75         //加不加&都可以
76         scanf("%s", sts[i].name);
77         printf("輸入各科成績\n");
78         for (j = 0; j < 3; j++)
79         {
80             scanf("%f", &sts[i].score[j]);
81         }
82     }
83 
84     printf("平均成績為:%f\n", avg1(sts, 5));
85     high(sts, 5);
86     system("pause");
87     return 0;
88 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 有10個學生,每個學生的數據包括學號、姓名、3門課程的成績,從鍵盤輸人10個學生數據,要求輸出3門課程總平均成績,以及最高分的學生的數據(包括學號、姓名、3門課程成績、平均分數) java例題_50 題目:有五個學生,每個學生有 3 門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成 績),計算出平均成績,將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。 讀入n名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。 java從鍵盤輸入學生成績,找出最高分,並輸出學生成績等級。 從鍵盤讀入學生成績,找出最高分, 並輸出學生成績等級(Java) C語言之:結構體動態分配內存(利用結構體數組保存不超過10個學生的信息,每個學生的信息包括:學號、姓名和三門課(高數、物理和英語 )的成績和平均分(整型)。) 有n個學生的信息(包括學號,姓名,成績),要求按照成績的高低順序輸出各學生的信息 計算學生成績的最高分、最低分和平均分(數組全是方法) 2017.4.20實驗三:2、定義一個包含學生學號、姓名、年齡和三門課成績的結構體,輸入10個學生信息,並按總成績由高到低的順序排序並輸出。 查詢每個學生的所選課程的最高成績,要求列出學號、姓名、課程編號、分數
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM