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門課的成績、平均分數)。 有n個結構變量,內含學生學號,姓名和3門課程的成績。要求輸出平均成績的學生的信息 有10個學生,每個學生的數據包括學號、姓名、3門課程的成績,從鍵盤輸人10個學生數據,要求輸出3門課程總平均成績,以及最高分的學生的數據(包括學號、姓名、3門課程成績、平均分數) 有10個學生,每個學生的數據包括學號、姓名、3門課程的成績,從鍵盤輸人10個學生數據,要求輸出3門課程總平均成績,以及最高分的學生的數據(包括學號、姓名、3門課程成績、平均分數) 【C語言】利用文本編輯軟件在磁盤上建立一個有n個學生的學號、姓名及英語、數學和計算機三門課程成績的數據文件。編寫程序將數據文件讀入,且求出每個學生的平均成績。 /* * 有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數據 *(包括學生號,姓名,三門課成績),計算出平均成績, *將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。 */ 有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成績),計算出平均成績,況原有的數據和計算出的平均分數存放在磁盤文件 有五個學生,每個學生有3門課(語文、數學、英語)的成績, * 寫一個程序接收從鍵盤輸入學生的信息,輸入格式為:name,30,30,30(姓名,三門課成績)
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM