1. 程式人生 > 其它 >C語言入門——輸出學生成績(平均成績、最高成績、最低成績)

C語言入門——輸出學生成績(平均成績、最高成績、最低成績)

一、問題呈現

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;

}

三、測試圖