1. 程式人生 > >統計多個學生的多門課的成績(結構體)

統計多個學生的多門課的成績(結構體)

問題描述:

設有10個學生,每個學生的資料的包括學號,姓名,三門課的成績。要求從鍵盤輸入10個學生的資料,統計並列印

出三門課的平均成績,以及最高分的學生的資料(包括學號,姓名,三門課的成績,平均成績)。

演算法分析:

求每個學生的平均成績是要執行1.0次,所以使用for迴圈完成。

求分數最高的學生,就是求這10個數據中的最大者,先假設第1個事最大的,將其賦予記錄最大數的變數max,然後

用max和後面的資料一 一比較,只要發現比max大的數,就將此數賦予max,並記錄下當前的序號,也就是當前最大數

是第幾個數,知道結束。

原始碼:

#include<stdio.h>
struct student
{
    char num[4];
    char name[8];
    float score[3];
    float avr;
}stu[10];

void main()
{
    int i,j,maxi;
    float max,sum,aver;
    for(i=0;i<10;i++)   /*輸入學生的資料*/
    {
        printf("請輸入地%d個學生的資料:\n",i+1);
        printf("輸入學號:");
        scanf("%s",stu[i].num);
        printf("輸入姓名:");
        scanf("%s",stu[i].name);
        for(j=0;j<3;j++)
        {
            printf("輸入第%d門課的成績:",j+1);
            scanf("%f",&stu[i].score[j]);
        }
    }
    aver = 0;
    max = 0;
    maxi = 0;
    for(i=0;i<10;i++)  /* 分別求10個學生的平均成績,最高分的學生的序號 */
    {
        sum = 0;
        for(j=0;j<3;j++)
            sum +=stu[i].score[j];
        stu[i].avr = sum / 3.0;
        aver += stu[i].avr;
        if(sum > max)  /* 地i個學生的總分和當前最高分比較 */
        {
            max = sum;
            maxi = i;
        }
    }
    aver /= 10;  /* 求總平均成績 */
    printf("總的平均成績是:%.3f\n",aver);
    printf("最高分的學生的學號,姓名,三門課的成績分別為:\n");
    printf("%s %s %.2f %.2f %.2f\n",stu[maxi].num,stu[maxi].name,stu[maxi].score[0],
        stu[maxi].score[1],stu[maxi].score[2],stu[maxi].avr);
}


相關推薦

統計學生多門成績結構

問題描述: 設有10個學生,每個學生的資料的包括學號,姓名,三門課的成績。要求從鍵盤輸入10個學生的資料,統計並列印 出三門課的平均成績,以及最高分的學生的資料(包括學號,姓名,三門課的成績,平均成績)。 演算法分析: 求每個學生的平均成績是要執行1.0次,所以使用for

一臺機器同時執行Tomcat服務解決方案2017更新

作者:fbysss msn:[email protected]  blog:blog.csdn.net/fbysss 宣告:本文由fbysss原創,轉載請註明出處 關鍵字:Tomcat 如何在一臺伺服器上安裝多個Tomcat 假設有2個tomcat,分別為 /

kafka測試同一個消費組的消費者負載均衡例項整合spring

這裡使用的是zookeeper和kafka3臺機器的叢集,這樣能保證如過有一臺機器炸了還能執行,在叢集環境中,要在kafka的 server.properties中配置zookeeper叢集地址等資訊,最重要的是num.partitions=3.這樣一個分割槽就是一個機器,所以當kaf

電腦中安裝Tomcat,如何配置已經解決

     當電腦中已經有一個Tomcat時,由於不同的專案需要,所支援的Tomcat的版本不同,因此一個電腦中需要安裝多個Tomcat,接下來介紹怎樣安裝多個Tomcat的具體實現:      安裝前

Basler 網口相機出圖SDK版

利用basler相機自帶的SDK進行多相機出圖,為了便於理解,特將多相機出圖部分的程式拷貝出來,在win32控制檯環境下,配合OpenCV進行出圖測試。 執行環境:VS2013、OpenCV2410 OpenCV的安裝流程可參考其它的文件 此外需要安裝basler相機的

C/C++複習:成績統計結構

/* *Copyright(c)2016,煙臺大學計算機與控制工程學院 *All right reserved. *檔名稱:77.cpp *作 者:董凱琦 *完成日期:2016年4月26日 *版 本 號:v1.0 * *問題描述:建立一個簡單的學生資訊

selenium視窗之間的切換瀏覽器視窗

from selenium import webdriver d=webdriver.Firefox() d.get("http://www.baidu.com") d.find_element_by_id('kw').clear() d.find_element_b

【C語言】用結構陣列指標完成:有三學生資訊,存放在結構陣列中,要求輸出全部資訊

//用結構體陣列指標完成:有三個學生資訊,存放在結構體陣列中,要求輸出全部資訊 #include <stdio.h> struct Stu { int num; char name[2

連結串列中 指向 節點結構指標 的指標二重指標原題目為pta上查詢倒數k位置上的數字

#include<stdio.h> #include<stdlib.h> typedef struct list{ int num; struct list *next; }List ,*LIST; LIST createlist(LIST *L,

C++復合類型結構

iou .cn blog ges tor 例如 sig leon guests 其實c++的結構體可以理解為類似於python的字典,我個人理解, 但有區別 先看結構 #include <iostream> 關鍵字 標記成為新類型的名

五、PTA實驗作業結構

截圖 image 分數 blog double img class namespace def 1、提交列表 2、設計思路就是設計一個類似於在數組裏面求最低和最大數值的函數 最終代碼如下: #include<iostream> #incl

PAT 1004 Counting Leaves結構

A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input

MFC視窗之間傳遞資料結構

MFC視窗之間的通訊一般會利用傳送訊息的方式傳遞,那麼具體如何實現呢,程式碼如下: 下面實現的是一個子視窗把訊息傳送到主視窗的示例: 1.訊息傳送視窗部分程式碼: 首先新增自定義訊息; #defi

Solidify實現一個智慧合約11結構

結構體的宣告 pragma solidity ^0.4.4; contract Students { struct Person { uint age; uint stuId;

C語言基礎五結構

結構體 結構體是一種資料結構. 陣列也是一種資料結構,但是陣列存放的資料型別比較單一,結構體解決了數組裡不能存放 多種型別資料 的這種缺陷。 結構體宣告,定義 //宣告 struct infor // struct infor 是識別符號,

C語言:念數字結構

輸入一個整數,輸出每個數字對應的拼音。當整數為負數時,先輸出“fu”字。十個數字對應的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: q

hdu1236排名結構

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N 1005 int q

uefi bios pei 階段最重要的一個數據結構結構

在PEI階段,全域性變數大概有這麼幾個: gPs  PEI Service 結構的實現,包括所有的PEI 服務的函式指標。比如學見的PeiInstallPPi, PeiCreateHob, PeiSetSystem.  其次就是PrivateData, 這個是今天我們要討論

強制型別結構轉換NULL-----C指標的黑科技

一個頭疼的例子(改寫自Tencent—libco) #include<stdio.h> #include<string.h> typedef struct aa{ char a; int b; char o[3]

有10學生,每個學生的資料包括學號、姓名、3門成績,編寫如下函式: 1 輸入10學生 的基本資訊input; 2 求出每個學生的平均分average; 3 求出平均分

1、         有10個學生,每個學生的資料包括學號、姓名、3門課的成績,編寫如下函式: (1)    輸入10個學生 的基本資訊(input); (2)    求出每個學生的平均分(average); (3)    求出平均分最高的學生資訊(high_score);