C语言实训 计算学生成绩(结构体+函数+指针)

  • Post author:
  • Post category:其他


有10个学生,每个学生的数据包括学号、姓名和两门课的成绩。从键盘输入10个学生的数据。计算所有学生的总成绩以及找出所有学生中两门课总分最高的学生的数据。


编程思路

:首先定义包含学生信息的结构体类型,根据该类型定义有10个元素的结构体数组。在cal函数中计算出总成绩与最高分学生在数组中的索引,在主函数中输入学生数据,然后调用cal函数,得出所要的结果。

#include<stdio.h>
 struct student
{
    int num;//学号为整型
    char name[20];//姓名为字符串
    int score[2];//每人两门成绩定义为数组
    int sum;//成绩综合为整型
}stu[10];//需输入10个学生的成绩,用结构体数组
void cal(int *sum,int *maxi)
{
    int i,j,max;
    *sum=0;
    *maxi=0;
    max=0;
    for(i=0;i<10;i++)
    {
        for(j=0;j<2;j++)
        {
            stu[i].sum+=stu[i].score[j];
        }
        *sum+=stu[i].sum;
        if(stu[i].sum>max)//找出两门课总分最高的学生
        {
            max=stu[i].sum;
            *maxi=i;
        }
    }
}
int main()
{
    int i,sum,maxi;
    for(i=0;i<10;i++)
    {
  	   printf("输入第%d名学生的学号 姓名 两门课的成绩:",i+1);
        scanf("%d%s%d%d",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1]);
    }
        cal(&sum,&maxi);
        printf("总成绩为%d,最高分的学生数据为%d\t%s\t%d\t%d\t%d\n",sum,stu[maxi].num,stu[maxi].name,stu[maxi].score[0],stu[maxi].score[1],stu[maxi].sum);
    return 0;
}



版权声明:本文为qq_43730551原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。