注册 登录
编程论坛 C语言论坛

大佬看看哪错了

C菜鸟是我 发布于 2020-06-02 16:59, 1868 次点击
1)编程完成输入4个学生的平时、实习、测验和期末成绩。
2)计算这4个学生的总评成绩。其中平时、实习、测验和期末分别占10%、20%、20%、50%。
3)找到总评成绩最高的学生。
4)输出总评成绩最高的学生的成绩信息(平时、实习、测验、期末成绩和总评成绩)。
#include<stdio.h>
struct  Student
{
   float a;
    float b;
    float c;
    float d;
    float average;
}      
int max(int a[4])
{
    int i,t,m=a[0],max=0;
    for (i = 0; i < 4; i++)
    {     if (m < a[i])
        {    a[i] = t;
            a[i] = m;
            m = t;
            max = i;
        }
    }
    return max;
}
int main()
{    int sum[4];
    int m,n,i;
    struct  stu[4];  
    printf("请输入4个学生的平时、实习、测验、期末\n");
    for (i = 0; i < 4; i++)
    {    scanf("%f%f%f%f", stu[i].a, stu[i].b, stu[i].c, stu[i].d);   
        sum[i] = stu[i].average = stu[i].a*0.1 + stu[i].b*0.2 + stu[i].c*0.2 + stu[i].d*0.3;
    }
    m = max(sum);
    n = m+1;
    printf("成绩最高的第%d个学生\n平时成绩为%f\n实习成绩为%f\n测验成绩为%f\n期末成绩为%f\n总评成绩为%f\n", n, stu[m].a, stu[m].b, stu[m].c, stu[m].d, stu[m].average);
    return 0;
}
3 回复
#2
fulltimelink2020-06-02 17:30
struct 定义需要分号结束
临时存储数组的值是  t=a[i] 不是a[i]=t
scanf需要变量的地址
程序代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct  Student
{
    float a;
    float b;
    float c;
    float d;
    float average;
};
int max(int a[4])
{
    int i, t, m = a[0], max = 0;
    for (i = 0; i < 4; i++)
    {
        if (m < a[i])
        {
            t= a[i];
            a[i] = m;
            m = t;
            max = i;
        }
    }
    return max;
}
int main()
{
    int sum[4];
    int m, n, i;
    struct Student stu[4];
    printf("请输入4个学生的平时、实习、测验、期末\n");
    for (i = 0; i < 4; i++)
    {
        scanf("%f%f%f%f", &stu[i].a, &stu[i].b, &stu[i].c, &stu[i].d);
        sum[i] = stu[i].average = stu[i].a*0.1 + stu[i].b*0.2 + stu[i].c*0.2 + stu[i].d*0.3;
    }
    m = max(sum);
    n = m + 1;
    printf("成绩最高的第%d个学生\n平时成绩为%f\n实习成绩为%f\n测验成绩为%f\n期末成绩为%f\n总评成绩为%f\n", n, stu[m].a, stu[m].b, stu[m].c, stu[m].d, stu[m].average);
    return 0;
}
#3
C菜鸟是我2020-06-02 17:51
谢谢,解决了
#4
qq23816892822020-06-03 16:39
好好学习,天天向上!
1