C++ 结构未完成排序
基本上这是我的作业我不是要求你完成这项作业,只是帮助我。 对结构数组进行排序 在这个赋值中,您将创建一个结构数组并进行排序 阵列C++ 结构未完成排序,c++,arrays,sorting,struct,C++,Arrays,Sorting,Struct,基本上这是我的作业我不是要求你完成这项作业,只是帮助我。 对结构数组进行排序 在这个赋值中,您将创建一个结构数组并进行排序 阵列 创建包含(至少)3个字段的结构 创建一个结构数组 将数据读入结构数组(10到15条记录) 打印阵列 对结构的1个字段上的数组进行排序(升序) 打印阵列 在结构的另一个字段上对数组进行排序(降序) 打印阵列 我目前被困在第5步 这是我现在的节目 #include <iostream> #include <sstream> using namesp
#include <iostream>
#include <sstream>
using namespace std;
struct data {
int a,b,c;
} number [10];
int main(){
int enterData;
int *temp = new int[3];
for (int i = 0; i<10; i++){
//for (int n = 0; n<=3; n++){
cin>> number[i].a;
cin>> number[i].b;
cin>> number[i].c;
if(i >= 10) break;
//}
}
for (int i = 0; i<10; i++){
// for (int n = 0; n<=3; n++){
cout << number[i].a << " ";
cout << number[i].b << " ";
cout << number[i].c << " ";
cout << "\n";
if(i >= 10) break;
// }
}
cout <<"\n\n\n";
for (int i = 0; i<9; i++){
if (number[i].a > number[i+1].a){
temp[0] = number[i].a;
temp[1] = number[i].b;
temp[2] = number[i].c;
number[i].a = number[i+1].a;
number[i].b = number[i+1].b;
number[i].c = number[i+1].c;
number[i+1].a = temp[0];
number[i+1].b = temp[1];
number[i+1].c = temp[2];
}
}
for (int i = 0; i<10; i++){
// for (int n = 0; n<=3; n++){
cout << number[i].a << " ";
cout << number[i].b << " ";
cout << number[i].c << " ";
cout << "\n";
if(i >= 10) break;
// }
}
}
#包括
#包括
使用名称空间std;
结构数据{
INTA、b、c;
}数目[10];
int main(){
int enterData;
int*temp=新int[3];
对于(int i=0;i编号[i].a;
cin>>编号[i].b;
cin>>编号[i].c;
如果(i>=10)中断;
//}
}
对于(int i=0;i,在该代码中
for (int i = 0; i<10; i++){
//for (int n = 0; n<=3; n++){
cin>> number[i].a;
cin>> number[i].b;
cin>> number[i].c;
if(i >= 10) break;
//}
}
只能在数组中循环一次。最简单的排序算法气泡排序需要双循环:
for (int i = 0; i<10; i++){
for (int j = 0; j<9; j++){
if (number[j].a > number[j+1].a){
temp[0] = number[j].a;
temp[1] = number[j].b;
temp[2] = number[j].c;
number[j].a = number[j+1].a;
number[j].b = number[j+1].b;
number[j].c = number[j+1].c;
number[j+1].a = temp[0];
number[j+1].b = temp[1];
number[j+1].c = temp[2];
}
}
您可以使用数据
结构
data temp;
for (int i = 0; i<10; i++){
for (int j = 0; j<9; j++){
if (number[j].a > number[j+1].a){
temp.a = number[j].a;
temp.b = number[j].b;
temp.c = number[j].c;
number[j].a = number[j+1].a;
number[j].b = number[j+1].b;
number[j].c = number[j+1].c;
number[j+1].a = temp.a;
number[j+1].b = temp.b;
number[j+1].c = temp.c;
}
}
数据温度;
对于(int i=0;i您可以使用qsort对结构数组进行排序,并且在不需要编写自己的排序代码时使用qsort。强制它工作的最快方法是为(iTj=0;J.YouHuy!我相信我已经睡得太晚了。但是再一次谢谢。在C++中,根本没有理由使用<代码> QSORE > <代码> STD::排序< /COD>。
int *temp = new int[3];
data temp;
for (int i = 0; i<10; i++){
for (int j = 0; j<9; j++){
if (number[j].a > number[j+1].a){
temp.a = number[j].a;
temp.b = number[j].b;
temp.c = number[j].c;
number[j].a = number[j+1].a;
number[j].b = number[j+1].b;
number[j].c = number[j+1].c;
number[j+1].a = temp.a;
number[j+1].b = temp.b;
number[j+1].c = temp.c;
}
}