手写学生成绩排序

题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理

#include <iostream>
#include<string.h>
using namespace std;

    
struct student
{
    char name[20];
    float score;
    int index;
};
    
void sort(student stu[],int n,int flag)
{
    int i,j;
	int temp;
	//char *name;
    if(flag==1)
    {
        for(i=0;i<n;i++)
        {
            for(j=i+1;j<n+1;j++)
            {
                if(stu[i].score>stu[j].score)
                {
                    temp=stu[i].index;
                    stu[i].index=stu[j].index;
                    stu[j].index=temp;
					


                }

            }

        }
     }
    if(flag==0)
    {
        for(i=0;i<n;i++)
        {
            for(j=i+1;j<n+1;j++)
            {
                if(stu[i].score<stu[j].score)
                {
                    temp=stu[i].index;
                    stu[i].index=stu[j].index;
                    stu[j].index=temp;

                }

            }

        }
        
        
    }
    
    
    
 }
 
   void main()
  {
    int i,num,flag;
    //char name[20];
    //float score;
    student stu[5];
    cout<<"请输入人数"<<endl;
    cin>>num;
    
    cout<<"请输入升序1或者降序0"<<endl;
    cin>>flag;
    for(i=0;i<num;i++)
    {
        cout<<"请输入姓名和分数"<<endl;
        cin>>stu[i].name;
        cin>>stu[i].score;
        stu[i].index=i;
    }
    sort(stu,num,flag);
	cout<<endl;
    for(i=1;i<=5;i++)
    {
        cout<<stu[stu[i].index].score<<"    "<<stu[stu[i].index].name<<endl;
        
    }
    

}


注:转载请注明出处

发布了1 篇原创文章 · 获赞 1 · 访问量 885

猜你喜欢

转载自blog.csdn.net/qq_37927731/article/details/105281320