#include <bits/stdc++.h> using namespace std; struct Stu{ int num; string name; int score[3]; int all; }; void sort(Stu students[],int i){ int temp; for (int j=0;j<i;j++){ if (students[j].total<students[j+1].total){ temp=students[j]; students[j]=students[j+1]; students[j+1]=temp; } } } void SortStu(Stu students[],int i){ for (int j=0;j<i;j++){ students[j].total=0; for (int k=0;k<3;k++){ students[j].total+=students[j].score[k]; } } sort (students,i); } int main(){ int number=5; Stu students=new Stu[number]; for (int i=0;i<number;i++){ cin>>students[i].num>>students[i].name>>students[i].score[0]>>students[i].score[1]>>students[i].score[2]; } Sortstu(students,number); for (int i=0;i<5;i++) { cout<<students[i].num<<" "<<students[i].name<<" "<<students[i].total<<endl; } delete[] students; return 0; }
时间: 2024-04-06 16:32:50 浏览: 50
这段代码是一个简单的学生成绩排序程序,输入五个学生的学号、姓名、三门课程的成绩,然后按照总分从高到低排序输出学生的学号、姓名和总分。
其中定义了一个名为 Stu 的结构体,包含学号、姓名、三门课程的成绩和总分等信息。在主函数中,先定义了要输入的学生数目 number,然后使用 new 运算符动态分配了一个大小为 number 的 Stu 类型的数组 students。
接着使用循环输入每个学生的信息,然后调用 SortStu 函数进行排序,最后循环输出排序后的学生信息,并使用 delete[] 运算符释放动态分配的内存。
需要注意的是,这段代码存在一些问题,如 sort 函数的定义与 C++ 标准库中的 sort 函数冲突,应该更换函数名;还有函数 Sortstu 的调用应该改为 SortStu。
相关问题
#include <bits/stdc++.h> using namespace std; #include <string> struct Student { string name; string num; int age; }; int main() { struct Student s1[5]; int i=0; for(i=0;i<5;i++) { cin>>s1[i].name; cin>>s1[i].num; cin>>s1[i].age; } for(i=0;i<5;i++) { cout<<s1.name[i]<<" "<<s1.num[i]<<" "<<s1.age[i]<<endl; } }
这段代码使用了C++的标准库,并定义了一个名为Student的结构体,包含了name、num和age三个成员变量。在main函数中,创建了一个包含5个Student对象的数组s1,并通过循环输入每个对象的name、num和age。最后再通过循环输出每个对象的name、num和age。但是需要注意的是,输出时应该使用s1[i].name、s1[i].num和s1[i].age来访问每个对象的成员变量。
#include <bits/stdc++.h> using namespace std; struct Stu{ int num; string name; int score[3]; }; void Print(Stu students[],int i){ for (int j=0;j<i;j++){ cout<<students[i].num<<endl; cout<<students[i].name<<endl; cout<<students[i].score[0]<<" "<<students[i].score[1]<<" "<<students[i].score[2]<<endl; } } int main(){ int number=5; Stu students[number]; for (int i=0;i<number;i++){ cin>>students[i].num>>students[i].name>>students[i].score[0]>>students[i].score[1]>>students[i].score[2]; } Print(students,number); return 0; }
这是一个C++程序,定义了一个名为Stu的结构体,包含学生的学号、姓名和三门课的成绩。程序中还定义了一个函数Print,用于输出学生信息。在main函数中,首先定义了学生的数量为5,然后定义了一个大小为5的Stu数组students。通过for循环输入每个学生的信息,并且调用Print函数输出学生信息。需要注意的是,Print函数中的循环变量应该是j而不是i,否则会导致输出错误。
阅读全文