weixin_50173938 2021-08-17 11:32 采纳率: 66.7%
浏览 32
已结题

一道结构体数组的题目~~

有5个学生的信息,现在要求按照成绩高低排名,运行结果好像都是0~~

#include<stdio.h>
struct student
{
    int num;
    char name[20];
    int score;
    
}stu[5]={{1001,"li",99},{1002,"xin",101},{1003,"tian",103},{1004,"he",130},{1005,"shu",130}};
int main()
{  struct student temp;
const int n=5;
   int i,j,k;
   printf("由低到高的顺序是:\n");
   for(i=0;i<n-1;i++)
   {
        k=i;
        for(j=i+1;j<n;j++)
          if(stu[j].score>stu[k].score)
          k=j;
          temp=stu[k];
          stu[k]=stu[i];
          stu[i]=temp;
          
   }
   for(i=0;i<n;i++)
   {
       printf("%6d %8s %6.2f\n",stu[i].num,stu[i].name,stu[i].score);
       printf("\n");
   }

  return 0;
 } 

img

  • 写回答

3条回答 默认 最新

  • StjpStjp 2021-08-17 11:43
    关注

    举个例子吧

    
    #include<stdio.h>
    struct Student
    {
        int num;
        char name[20];
        float score;    
    }temp;
    
    void main()
    {
        int stuNum;
        struct Student stu[50];
        printf("请确定录入学生人数:");
        scanf("%d",&stuNum); 
        printf("请输入学生信息(学号,姓名,分数):\n"); 
        
        int i,j,k;
        for(i=0;i<stuNum;i++){
            scanf("%d %s %f",&stu[i].num,&stu[i].name,&stu[i].score);
        }
        //按成绩高低输出--简单的冒泡排序 
        for(j=1;j<stuNum;j++){
            for(k=0;k<stuNum-j;k++){
                if(stu[k].score>stu[k+1].score){
                    temp=stu[k+1];
                    stu[k+1]=stu[k];
                    stu[k]=temp;
                }
            }
        }
        printf("成绩排名如下:\n");
        //输出排序结果
        for(i=0;i<stuNum;i++){
            printf("%d\t%s\t%f\n",stu[i].num,stu[i].name,stu[i].score);
        } 
        
    }
    

    img

    如果对你有帮助,请采纳谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥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 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?