Frankieee6 2019-11-09 15:46 采纳率: 50%
浏览 953

C语言结构体基础 按照成绩顺序输出学生信息 求解(感谢)

int main(void){
    struct Student{
        int id[8];
        int math;
        int eng;
        int com;
        float all;
    }student[11];
    float aver=0.0,aver1=0.0,aver2=0.0,aver3=0.0;
    float mathaver=0.0,engaver=0.0,comaver=0.0;
    float mathall=0.0,engall=0.0,comall=0.0; 
    for(int i=0;i<10;i++){
    printf("请输入第%d位学生的学号:",i+1); 
    scanf("%s",student[i].id); 
    printf("请输入第%d位学生的数学成绩:",i+1); 
    scanf("%d",&student[i].math); 
    printf("请输入第%d位学生的英语成绩:",i+1); 
    scanf("%d",&student[i].eng); 
    printf("请输入第%d位学生的计算机成绩:",i+1); 
    scanf("%d",&student[i].com); 
    } 
    for(int i=0;i<10;i++){
        mathall+=student[i].math;
    } 
    for(int i=0;i<10;i++){
        engall+=student[i].eng;
    } 
    for(int i=0;i<10;i++){
        comall+=student[i].com;
    } 
    mathaver=mathall/10.0;
    engaver=engall/10.0;
    comaver=comall/10.0;
    printf("\n\n数学、英语、计算机成绩这三门课的平均成绩分别为:%.2f,%.2f,%.2f\n\n",mathaver,engaver,comaver);
    printf("以下为按照总成绩由高往低排序后10位同学的信息===========================\n\n");

    for(int i=0;i<10;i++){
        student[i].all=student[i].math+student[i].eng+student[i].com;
    }
    for(int i=0;i<9;i++){
        for(int j=i+1;j<10;j++){
            if(student[i].all>student[j].all){
                student[11]=student[i];
                student[i]=student[j];
                student[j]=student[11];
            }
        }
    }
    for(int i=0;i<10;i++){
        printf("第%d位学生:  学号为:%s\t",i+1,student[i].id);
        printf("数学成绩:%d\t",student[i].math);
        printf("英语成绩:%d\t",student[i].eng);
        printf("计算机成绩:%d\t",student[i].com);
        aver=(student[i].math+student[i].eng+student[i].com)/3;
        printf("平均分:%.2f\n\n",i+1,aver);
    }



图片说明图片说明

题目如上,输入了三次都是显示进程结束。

感谢解答。

  • 写回答

2条回答

  • threenewbee 2019-11-09 17:16
    关注

    再回你一次:数组下标从0开始,而不是1开始student[11],最大下标是10!!!

    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办