C語言之:結構體動態分配內存(利用結構體數組保存不超過10個學生的信息,每個學生的信息包括:學號、姓名和三門課(高數、物理和英語 )的成績和平均分(整型)。)


題目內容:

利用結構體數組保存不超過10個學生的信息,每個學生的信息包括:學號、姓名和三門課(高數、物理和英語 )的成績和平均分(整型)。

編寫程序,從鍵盤輸入學生的人數,然后依次輸入每個學生的學號、姓名和3門課的成績

然后計算每個學生的平均分

最后按指定格式輸出每個學生的平均分

 

輸入格式:

先輸入一個整數,表示學生個數

然后每行輸入一個學生的信息:學號、姓名和高數、物理及英語成績

 

輸出格式:

輸出每個學生的平均分.printf中請用格式控制串"The average score of the %dth student is %d.\n"

 

輸入樣例:

5

1001 Zhang 100 90 80

1002 Wu 93 90 98

1003 Zhu 89 88 87

1004 Hu 90 98 98

1005 Wang 90 98 97

 

輸出樣例:

The average score of the 1th student is 90.

The average score of the 2th student is 93.

The average score of the 3th student is 88.

The average score of the 4th student is 95.

The average score of the 5th student is 95.

 

代碼如下:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

struct STU {
    char ID[20];
    char Name[20];
    float math;
    float physic;
    float english;
};
int main()
{


    int n,i,j,k;
    float res;
    scanf("%d", &n);
    if (n > 10) {
        return 0;
    }
    struct STU *mySTU = (struct STU*)malloc(sizeof(struct STU) * n);   //動態內存分配關鍵 malloc
    struct STU* p = mySTU;
    for (i = 0; i < n; i++)
    {
        scanf("%s", &p->Name);
        scanf("%s", &p->ID);
        scanf("%f", &p->math);
        scanf("%f", &p->english);
        scanf("%f", &p->physic);
        *(p++);
    }
    struct STU *q = mySTU;
    for (j = 0; j < n; j++)
    {
        res = (q->math + q->physic + q->english)/3;
        k = (int)res;
        printf("The average score of the %dth student is %d.\n", j+1,k );
        *(q++);
    }

        return 0;
}

 


免責聲明!

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



猜您在找 2017.4.20實驗三:2、定義一個包含學生學號、姓名、年齡和三門課成績的結構體,輸入10個學生信息,並按總成績由高到低的順序排序並輸出。 有10個學生,每個學生的數據包括學號、姓名、3門課程的成績,從鍵盤輸人10個學生數據,要求輸出3門課程總平均成績,以及最高分的學生的數據(包括學號、姓名、3門課程成績、平均分數) java例題_50 題目:有五個學生,每個學生有 3 門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成 績),計算出平均成績,將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。 某班有5個學生, 每名學生的數據包括學號,姓名,3門課成績,從鍵盤上輸入5名學生數據,要求打印出3門課的總平均成績以及最高分的學生數據(包括學號,姓名,3門課成績) 按平均成績從高到低顯示所有學生的“數據庫”、“企業管理”、“英語”三門的課程成績,按如下形式顯示: 學生ID,,數據庫,企業管理,英語,有效課程數,有效平均分 使用結構體變量存儲學生姓名和課程成績,計算平均分及查找不及格同學姓名及分數 有n個學生的信息(包括學號,姓名,成績),要求按照成績的高低順序輸出各學生的信息 JAVA編程:有五個學生,每個學生有3門課(語文、數學、英語)的成績, 輸入5個學生的信息(包括學號,姓名,英語成績,計算機語言成績和數據庫成績), 統計各學生的總分,然后將學生信息和統計結果存入test.txt文件中 用C#設計一個 Windows應用程序,在該程序中定義一個學生類和班級類,以處理每個學生的學號、姓名、語文、數學和英語3門課程的期末考試成績
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM