学生成绩 P1102

code

#include<iostream>
#include<algorithm>
using namespace std;
typedef struct Student{
	char name[21],gender[21];
	int age,grade;
}student;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	void bubble_sort(student [],int [],int );
	student s[1000];
	int ps[1000];
	int i,j,N,f;
	cin>>N;
	for(i=0;i<N;++i){
		ps[i]=i;
		cin>>s[i].name>>s[i].gender>>s[i].age>>s[i].grade;
	}
	bubble_sort(s,ps,N);
	for(i=0;i<N;++i){
		cout<<s[ps[i]].name<<' '<<s[ps[i]].gender<<' '<<s[ps[i]].age<<' '<<s[ps[i]].grade<<'\n';
	}
	return 0;
}
void bubble_sort(student a[],int pa[],int n){
	int i,j,k,change=1;
	student t;
	for(i=n-1;i>=1&&change;--i){
		change=0;
		for(j=0;j<i;++j){
			if(a[pa[j]].grade>a[pa[j+1]].grade){
				/*k=pa[j];
				pa[j]=pa[j+1];
				pa[j+1]=k;*/
				swap(pa[j],pa[j+1]);
				change=1;
			}
		}
	}
}

Q

算法训练 P1102
     
资源限制
时间限制:1.0s   内存限制:256.0MB
  定义一个学生结构体类型student,包括4个字段,姓名、性别、年龄和成绩。然后在主函数中定义一个结构体数组(长度不超过1000),并输入每个元素的值,程序使用冒泡排序法将学生按照成绩从小到大的顺序排序,然后输出排序的结果。
  输入格式:第一行是一个整数N(N<1000),表示元素个数;接下来N行每行描述一个元素,姓名、性别都是长度不超过20的字符串,年龄和成绩都是整型。
  输出格式:按成绩从小到大输出所有元素,若多个学生成绩相同则成绩相同的同学之间保留原来的输入顺序。
输入:
  3
  Alice female 18 98
  Bob male 19 90
  Miller male 17 92

输出:
  Bob male 19 90
  Miller male 17 92
  Alice female 18 98
posted @ 2022-02-26 13:02  ethon-wang  阅读(29)  评论(0编辑  收藏  举报