本題要求編寫程序,根據輸入學生的成績,統計並輸出學生的平均成績、最高成績和最低成績。建議使用動態內存分配來實現。
輸入格式:
輸入第一行首先給出一個正整數N,表示學生的個數。接下來一行給出N個學生的成績,數字間以空格分隔。
輸出格式:
按照以下格式輸出:
average = 平均成績 max = 最高成績 min = 最低成績
結果均保留兩位小數。
輸入樣例:
3
85 90 95
輸出樣例:
average = 90.00 max = 95.00 min = 85.00
本題沒有什么難度,直接做就ok,它題目考察的是一個知識點,不是思路,所以很簡單。
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<math.h> 5 int main() { 6 int n = 0; 7 scanf("%d", &n); 8 int max = 0, min = 100; //此處min賦值100,因為如果賦值0,他就永遠是最小的了,成績最高100,所以賦值100 9 double average = 0.0; 10 int sum = 0; 11 int* a = (int*)malloc(n * sizeof(int)); 12 for (int i = 0; i < n; i++) { 13 scanf("%d", &a[i]); 14 if (max < a[i]) { 15 max = a[i]; 16 } 17 if (min > a[i]) { 18 min = a[i]; 19 } 20 sum += a[i]; 21 } 22 23 average = 1.0 * sum / n; 24 printf("average = %.2lf\n", average); 25 printf("max = %d.00\n", max); 26 printf("min = %d.00", min); 27 return 0; 28 29 }
這里我依然只用了一層循環,就直接輸入以后就處理了,麻煩點的方法是,先讀,再處理,那樣很麻煩。
這里我的max和min都是整型,只是在最后輸出的時候加入了.00這樣的“假”的小數。
沒什么說的啦!