求大神帮编写一个C语言结构体的程序,题目如下:

建立学生信息表
有n个学生(学生个数自己定义),每个学生包含的信息有学号(num),姓名(name[20]),性别(sex),年龄(age),2门课的成绩(score[2]),要求从键盘输入这n个同学的所有数据,然后调用一个函数(以数组名作为函数的参数),用来计算每个学生的总分和平均分,并且输出每个学生的所有数据。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int n = 0;

struct student{
    int num;
    char name[20];
    char sex[10];
    int age;
    float score[2];
    float sum;
    float average;
};

int InputAndOutput(struct student *stu)
{
    int i = 0;
    for(i=0; i<n; i++)
    {
        printf("请输入第 %d 个学生的信息: \n",i+1);
        printf("姓名: ");
        scanf("%s", stu[i].name);
        printf("性别: ");
        scanf("%s",stu[i].sex);
        printf("依次输入其他信息,格式为: 学号,年龄,成绩1,成绩2 \n");
        scanf("%d,%d,%f,%f", &(stu[i].num),&(stu[i].age),&(stu[i].score[0]),&(stu[i].score[1]));
        stu[i].sum = stu[i].score[0] + stu[i].score[1];
        stu[i].average = (float)stu[i].sum / 2;
    }

    printf("学生信息统计完毕: \n");
    for(i=0; i<n; i++)
    {
        printf("姓名: %s, 性别: %s, 学号: %d, 年龄: %d, 成绩1: %.2f, 成绩2: %.2f, 总分: %.2f, 平均分: %.2f \n",
               stu[i].name,stu[i].sex,stu[i].num,stu[i].age,stu[i].score[0],stu[i].score[1], stu[i].sum, stu[i].average);
    }

    return 0;
}


int main()
{
printf("请输入学生的人数: \n");
scanf("%d",&n);
struct student *students;

int size = n*sizeof(struct student);
students = (struct student *)malloc(size);
memset(students, 0, size);
    InputAndOutput(students);
    printf("\n");

return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-12

根据问题描述,学生对应的结构体,可以定义如下:

struct Student
{
int num;
char name[20];
int sex;
int age;
int score[2];
};

第2个回答  2019-01-12
他的客户哦对突袭日语系第一自然以及虽然他G8虽然吓人好像也有游戏人间人呀显然又咋叫他东西好呀惊喜人机容易西京学院认认真真一日看小图看图吃鸡呀昨天的作业鸡肉卷小渔村太卡才痛苦惊喜天然卷发有
相似回答