「已注销」 2019-12-28 17:44 采纳率: 100%
浏览 187

C语言 (根据学生获得的学分由高到低排序)为什么我的程序到第二十个往后就不在排序了?

#include
#include
#define ST_NUM 35//学生数 在运行开始前修改
//int number panduan(char b);
//int grade_panduan(int a);
typedef struct
{
int num;//学号

char name[9];//姓名
int xuefen;//获得学分
int math;//高等数学成绩
int pe;//大学体育成绩
int chinesehistory;//中国近代史成绩
int daolun;//软件技术导论成绩
int english;//大学英语
int c_program;//C语言程序设计
float average;//平均分
}student;
student ST[ST_NUM];
//student t;
int main()
{
int i,j;
//student t=0;//text
printf("请输入%d个学生的信息:\n",ST_NUM);
for(i=0;i {
printf("请输入学号:");
scanf("%d",&ST[i].num);
if(ST[i].num>=1908170300&&ST[i].num<=1908170335)
{
printf("姓名:");
scanf("%s",ST[i].name);
printf("高等数学:");
scanf("%d",&ST[i].math);
if(ST[i].math>=0&&ST[i].math<=100)
{
printf("大学体育:");
scanf("%d",&ST[i].pe);
if(ST[i].pe>=0&&ST[i].pe<=100)
{
printf("中国近代史纲要:");
scanf("%d",&ST[i].chinesehistory);
if(ST[i].chinesehistory>=0&&ST[i].chinesehistory<=100)
{
printf("软件技术导论成绩:");
scanf("%d",&ST[i].daolun);
if(ST[i].daolun>=0&&ST[i].daolun<=100)
{
printf("大学英语:");
scanf("%d",&ST[i].english);
if(ST[i].english>=0&&ST[i].english<=100)
{
printf("C语言成绩:");
scanf("%d",&ST[i].c_program);
if(ST[i].c_program>=0&&ST[i].c_program<=100)
{

                                continue;
                            }
                            else
                            printf("成绩输入错误");
                        return 0;
                        }
                        else
                        printf("成绩输入错误");
                        return 0; 
                    }


                    else
                    printf("成绩输入错误"); 
                    return 0;
                }
                else
                printf("成绩输入错误"); 
                return 0;
            }
            else 
            printf("成绩输入错误"); 
            return 0;
        }
        else 
        printf("成绩输入错误"); 
        return 0;
    }
    else 
    printf("学号输入错误"); 
    return 0;
}
for(i=0;i<ST_NUM;i++)
                                {
                                    ST[i].xuefen=5*(ST[i].math>=60)+(ST[i].pe>=60)+2*(ST[i].chinesehistory>=60)+2*(ST[i].daolun>=60)+4*(ST[i].english>=60)+4*(ST[i].c_program>=60);
                                    ST[i].average=(ST[i].math+ST[i].pe+ST[i].chinesehistory+ST[i].english+ST[i].c_program+ST[i].daolun)/6;
                                }
                                    printf("序号\t学号     姓名\t");
                                    printf("学分\t数学\t体育\t中国近代史纲要\t导论\t大学英语 C语言\t平均分\n");
if(ST_NUM>1)
{
    for(j=0;j<ST_NUM;j++)  

for(i=0;i<ST_NUM-i;i++)

if(ST[i].xuefen<ST[i+1].xuefen)//交换
{
t=ST[i];
ST[i]=ST[i+1];
ST[i+1]=t;
}
}

                                for (i=0;i<ST_NUM;i++)
                                {
                                    printf("%d\t",i+1);
                                    printf("%d ",ST[i].num);
                                    printf("%s",ST[i].name);
                                    printf("%d\t",ST[i].xuefen);
                                    printf("%d\t",ST[i].math);
                                    printf("%d\t",ST[i].pe);
                                    printf("%d              ",ST[i].chinesehistory);
                                    printf("%d\t",ST[i].daolun);
                                    printf("%d\t",ST[i].english);
                                    printf("%d\t",ST[i].c_program);
                                    printf("%f\n",ST[i].average);

                                }

}


  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2019-12-29 00:18
    关注

    #include
    #include
    后面没有写啊

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?