每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399
建立一个学生信息系统,输入学生信息,输出有挂科同学的信息,再按照平均成绩从高到低排序输出。
输入样例:
5zhaoyi 70 80 90 240qianer 65 32 77 174sunsan 100 55 68 223lisi 86 77 90 253wangwu 100 59 66 225
输出样例:
*[qianer] 65 32 77*[sunsan] 100 55 68*[wangwu] 100 59 66lisi 86 77 90zhaoyi 70 80 90wangwu 100 59 66sunsan 100 55 68qianer 65 32 77
(1)代码实现:
#includeusing name spacestd;typedefstruct{char name[20];float score1;float score2;float score3;int total; }Student;voidswap1(Student s[],int i,int j){ Student temp = s[i]; s[i]=s[j]; s[j]=temp; }voidfind_fail(Student s[],int n){//输出不及格的人数for(int i=0;i<n;i++){if(s[i].score1<60||s[i].score2<60||s[i].score3<60)cout<<"*["<<s[i].name<<"]"<<s[i].score1<<""<<s[i].score2<<""<<s[i].score3<<endl; }cout<<endl; }//按照平均成绩的高低输出voidprintByAverage(Student s[],int n){//按照基本的冒泡排序法按照成绩排序for(int i=0;i<n-1;i++)for(intj=n-1;j>i;j--)if(s[j-1].total>s[j].total)//逆序 swap1(s,j-1,j);for(int k=n-1;k>=0;k--){cout<<s[k].name<<"";cout<<s[k].score1<<"";cout<<s[k].score2<<"";cout<<s[k].score3<<endl; } }intmain(){cout<<"输入学生的人数:";int n=0;cin>>n; Student s[100];//假定最多输入100个学生的成绩cout<<"请依次输入学生的姓名,第一门课的成绩,第二门课的成绩,第三门课的成绩以及总分:"<<endl;for(int i=0;i<n;i++){cin>>s[i].name;cin>>s[i].score1;cin>>s[i].score2;cin>>s[i].score3;cin>>s[i].total; } find_fail(s,n); printByAverage(s,n); system("pause");return0; }</n;i++){</s[k].score3<<</s[k].score2<<</s[k].score1<<</s[k].name<<</n</s[i].score3<<</s[i].score2<<</s[i].score1<<</s[i].name<<</n;i++){