Jayden


私信TA

用户名:dotcpp0731360

访问量:508

签 名:

等  级
排  名 2146
经  验 2432
参赛次数 0
文章发表 12
年  龄 0
在职情况 学生
学  校
专  业 数据科学与大数据技术

  自我简介:

解题思路:1.main函数只用使用for循环读取N名同学的信息

              2.自定义average函数,求出三科成绩的平均数

              3.然后自定义greatest函数,找出成绩最好的同学(通过每位同学总分的compare)

注意事项: 1.申请数组时尽量大一些,防止越界
                2.输入的时候注意是否要取址
                3.统计的变量要初始化
参考代码:

#include <stdio.h>
struct score
{
    char number[100];
    char name[100];
    int grade1;    //第一科成绩
    int grade2;    //第二科成绩
    int grade3;    //第三科成绩
};
  
int average(struct score student[], int N)
{
      
    int average1 = 0, average2 = 0, average3 = 0;    //分别是第一科、第二科、第三科成绩
    int sum1 = 0, sum2 = 0, sum3 = 0;    //分别是N名同学第一科成绩总和、第二名成绩总和、第三名成绩总和
    int i = 0;
    for(i = 0; i < N; i ++)        
    {
        sum1 = student[i].grade1 + sum1;
        sum2 = student[i].grade2 + sum2;
        sum3 = student[i].grade3 + sum3;    //for循环遍历获取三科总分
    }
    average1 = sum1 / N;
    average2 = sum2 / N;
    average3 = sum3 / N;
    printf("%d %d %d\n", average1, average2, average3);
    return 0;
}
  
void greatest(struct score student[], int N)
{
    int i = 0;
    int total = 0;
    int greatest_index = 0;    //获取成绩最好的同学的索引
    for(i = 0; i < N; i ++)
    {
        int total1 = student[i].grade1 + student[i].grade2 + student[i].grade3;    //求各个同学的总分
        if(total1 > total)
        {
            total = total1;
            greatest_index = i;    //通过compare找出成绩最高的同学,在每一次遍历过后,将较高的成绩存储在total变量之中
        }
    }
    printf("%s %s %d %d %d\n", student[greatest_index].number, student[greatest_index].name, student[greatest_index].grade1, student[greatest_index].grade2, student[greatest_index].grade3);
}
  
int main()
{
    struct score student[100] = {0};
    int N = 0;
    int i = 0;
    scanf("%d", &N);
    for(i = 0; i < N; i++)
    {
        scanf("%s %s %d %d %d", student[i].number, student[i].name, &student[i].grade1, &student[i].grade2, &student[i].grade3);
    }
    average(student, N);
    greatest(student, N);
    return 0;
}



 

0.0分

3 人评分

  评论区

欢迎各位朋友,可以在评论区和大家一起分享你写的代码哦!
2024-02-16 22:00:17
  • «
  • 1
  • »