Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 结构未完成排序_C++_Arrays_Sorting_Struct - Fatal编程技术网

C++ 结构未完成排序

C++ 结构未完成排序,c++,arrays,sorting,struct,C++,Arrays,Sorting,Struct,基本上这是我的作业我不是要求你完成这项作业,只是帮助我。 对结构数组进行排序 在这个赋值中,您将创建一个结构数组并进行排序 阵列 创建包含(至少)3个字段的结构 创建一个结构数组 将数据读入结构数组(10到15条记录) 打印阵列 对结构的1个字段上的数组进行排序(升序) 打印阵列 在结构的另一个字段上对数组进行排序(降序) 打印阵列 我目前被困在第5步 这是我现在的节目 #include <iostream> #include <sstream> using namesp

基本上这是我的作业我不是要求你完成这项作业,只是帮助我。

对结构数组进行排序

在这个赋值中,您将创建一个结构数组并进行排序 阵列

  • 创建包含(至少)3个字段的结构
  • 创建一个结构数组
  • 将数据读入结构数组(10到15条记录)
  • 打印阵列
  • 对结构的1个字段上的数组进行排序(升序)
  • 打印阵列
  • 在结构的另一个字段上对数组进行排序(降序)
  • 打印阵列
  • 我目前被困在第5步

    这是我现在的节目

    #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;
      }
     }