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 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试