SUPERLiQi 2021-08-11 17:19 采纳率: 100%
浏览 44
已结题

为什么无法输出呐?它可以编译跑起来,但无法输出。


#include<stdio.h>
struct student
    {
        int xuehao;
        char name[30];
        float fen1;
        float fen2;
    }sheng[5];
int main()
{
    
    struct student max(struct student a[]);
    struct student zuida;
    int i;
    for (i = 0; i <= 4; i++)
    {
        printf("请输入%d名学生学号,姓名,和两门成绩:\n", i + 1);
        scanf_s("%d %s %f %f", &sheng[i].xuehao, sheng[i].name, &sheng[i].fen1, &sheng[i].fen2);
    }
    zuida = max(sheng);
    printf("平均分最高的学生情况如下:\n");
    printf("学号%d\n姓名%s\n2门成绩%f%f\n", zuida.xuehao, zuida.name, zuida.fen1, zuida.fen2);
    return 0;
}
    struct student max(struct student a[])
    {
        float pinjunfen[5];
        int i, zuigao;
        for (i = 0; i <= 4; i++)
            pinjunfen[i] = (a[1].fen1 + a[i].fen2) / 2;
        for (zuigao = 0, i = 0; i <= 4; i++)
            if (pinjunfen[zuigao] < pinjunfen[i])
                zuigao = i;
        return (a[zuigao]);
    }

img

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-08-11 17:35
    关注

    修改如下,供参考:

    #include<stdio.h>
    struct student
    {
        int xuehao;
        char name[30];
        float fen1;
        float fen2;
    }sheng[5];
    int main()
    {
        struct student max(struct student a[]);
        struct student zuida;
        int i;
        for (i = 0; i <= 4; i++)
        {
            printf("请输入%d名学生学号,姓名,和两门成绩:\n", i + 1);
            scanf_s("%d %s %f %f", &sheng[i].xuehao, sheng[i].name,20, &sheng[i].fen1, &sheng[i].fen2);
            //canf_s("%d %s %f %f", &sheng[i].xuehao, sheng[i].name, &sheng[i].fen1, &sheng[i].fen2);
        }
        zuida = max(sheng);
        printf("平均分最高的学生情况如下:\n");
        printf("学号%d\n姓名%s\n2门成绩%f%f\n", zuida.xuehao, zuida.name, zuida.fen1, zuida.fen2);
        return 0;
    }
    struct student max(struct student a[])
    {
        float pinjunfen[5];
        int i, zuigao;
        for (i = 0; i <= 4; i++)
            pinjunfen[i] = (a[i].fen1 + a[i].fen2) / 2;//pinjunfen[i] = (a[1].fen1 + a[i].fen2) / 2;
        for (zuigao = 0, i = 0; i <= 4; i++)
            if (pinjunfen[zuigao] < pinjunfen[i])
                zuigao = i;
        return (a[zuigao]);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月19日
  • 已采纳回答 8月11日
  • 创建了问题 8月11日

悬赏问题

  • ¥15 gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置
  • ¥15 计算决策面并仿真附上结果
  • ¥20 halcon 图像拼接
  • ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
  • ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥100 求ASMedia ASM1184e & ASM1187e 芯片datasheet/规格书
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么