Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.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 - Fatal编程技术网

C 排序结构

C 排序结构,c,C,我想根据我计算并保存到结构中的矩形区域的值对矩形的名称进行排序。但是我在strcpy上遇到了很多错误。你能告诉我我的逻辑有什么问题吗 typedef struct coordinate{ float x[MAX_REC]; float y[MAX_REC]; char name[MAX_REC][IDENTIFIER+1]; }coor; typedef struct perimeter_area{ float perimeter[MAX

我想根据我计算并保存到结构中的矩形区域的值对矩形的名称进行排序。但是我在strcpy上遇到了很多错误。你能告诉我我的逻辑有什么问题吗

    typedef struct coordinate{
    float x[MAX_REC];
    float y[MAX_REC];
    char name[MAX_REC][IDENTIFIER+1];
    }coor;

    typedef struct perimeter_area{
    float perimeter[MAX_REC];
    float area[MAX_REC];
    char  name_s[IDENTIFIER];
    }pa;


    int main(){

.
.
.
insertion_sort(&f2,number_new_row);
.
.
.
}
void insertion_sort(pa *f2,int row){
    float tmp_area;
    float tmp_perimeter;
    char  tmp_name[IDENTIFIER];
    int j;

    for(int i=0; i<row; ++i){
        tmp_area=f2->area[i];
        strcpy(tmp_name,f2->name_s[i]);
        j=i-1;
        while(j>=0 && tmp_area<f2->area[j+1]){
            f2->area[j+1]=f2->area[j];
            j--;
        }
        f2->area[j+1]=tmp_area;
        strcpy(f2->name_s[i],f2->name_s[j]);
        strcpy(f2->name_s[j],tmp_name);
    }

}
typedef结构坐标{
浮动x[MAX_REC];
浮动y[MAX_REC];
字符名[MAX_REC][IDENTIFIER+1];
}库尔;
类型定义结构周界面积{
浮动周长[MAX_REC];
浮动面积[MAX_REC];
字符名称_s[标识符];
}pa;
int main(){
.
.
.
插入\排序(&f2,编号\新行);
.
.
.
}
无效插入\u排序(pa*f2,整数行){
浮动tmp_区;
浮动tmp_周界;
字符tmp_名称[标识符];
int j;
对于(int i=0;iarea[i];
strcpy(tmp_名称,f2->name_s[i]);
j=i-1;
而(j>=0&&tmp_面积[j+1]){
f2->区域[j+1]=f2->区域[j];
j--;
}
f2->区域[j+1]=tmp_区域;
strcpy(f2->name_s[i],f2->name_s[j]);
strcpy(f2->name_s[j],tmp_name);
}
}

我得到了答案。零件名称中的第二个结构必须是2D数组。

我的代码中有问题吗?