C 排序结构
我想根据我计算并保存到结构中的矩形区域的值对矩形的名称进行排序。但是我在strcpy上遇到了很多错误。你能告诉我我的逻辑有什么问题吗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
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数组。我的代码中有问题吗?