C語言入門——輸出學生成績(平均成績、最高成績、最低成績)
阿新 • • 發佈:2022-03-18
一、問題呈現
1.問題描述
Problem Description
本題要求編寫程式,根據輸入學生的成績,統計並輸出學生的平均成績、最高成績和最低成績。
2.輸入輸出
Input
輸入第一行首先給出一個正整數N,表示學生的個數。接下來一行給出N個學生的成績,數字間以空格分隔。
Output
按照以下格式輸出:
average = 平均成績
max = 最高成績
min = 最低成績
結果均保留兩位小數
3.測試樣例
樣例1
Sample Input
5
80 90 100 90 80
Sample Output
average = 88.00
max = 100.00
min = 80.00
樣例2
Sample Input
5
80 90 100 70 80
Sample Output
average = 84.00
max = 100.00
min = 70.00
二、原始碼實現(+註釋)
//編碼及註釋:Code_流蘇 //定義標頭檔案 #include<stdio.h> #include<stdlib.h> //f函式 用於實現最大值和最小值的遍歷查詢 double f(int *a,int n,int m) { int i; //定義index整型變數 並初始化為0 用於儲存最大值和最小值下標索引 int index=0; //迴圈遍歷 查詢最大值和最小值 for(i=1;i<n;i++) { if(m==1) { if(a[i]>=a[index]) index=i; //查詢最大值 } else { if(a[i]<=a[index]) index=i;//查詢最小值 } } //返回浮點值 return a[index]/1.0; } //主函式 int main() { //定義變數N用於儲存及輸入學生人數 int N; //定義陣列 用於 儲存 迴圈遍歷 int arr[10005]; printf("請輸入學生人數:"); scanf("%d",&N); int i; //定義sum用於儲存求和之後的值 int sum=0; printf("請輸入這些學生的成績:"); //迴圈遍歷求和 for(i=0;i<N;i++) { scanf("%d",&arr[i]); sum+=arr[i]; } //輸出平均數 printf("average = %.2lf\n",sum/(double)N); //輸出最大值 printf("max = %.2lf\n",f(arr,N,1)); //輸出最小值 printf("min = %.2lf\n",f(arr,N,2)); //返回0,代表程式執行結束 return 0; }