我想按字母顺序对结构进行排序,但如果我进行排序,我的程序不会';我不能给出任何结果 #包括 #包括 #包括 类型定义结构kezdo { 国际货币基金组织; 查贝图; }凯兹多; int main(int argc,char*argv[]) { int j; int i; int db=0; int伏=0; char-sajt[22]; 文件*f=fopen(argv[1],“r”); 如果(f==NULL) { fprintf(标准“Hiba a fajl megnyitasaban!”); } int k=20; kezdot[k]; KEZDO tmp; 对于(i=0;i
,正如我在代码中看到的,您希望在我想按字母顺序对结构进行排序,但如果我进行排序,我的程序不会';我不能给出任何结果 #包括 #包括 #包括 类型定义结构kezdo { 国际货币基金组织; 查贝图; }凯兹多; int main(int argc,char*argv[]) { int j; int i; int db=0; int伏=0; char-sajt[22]; 文件*f=fopen(argv[1],“r”); 如果(f==NULL) { fprintf(标准“Hiba a fajl megnyitasaban!”); } int k=20; kezdot[k]; KEZDO tmp; 对于(i=0;i,c,C,,正如我在代码中看到的,您希望在char betu上排序。排序结构的一种方法是通过qsort,但这需要下面说明的比较函数: int compare(const void *void_a, const void *void_b) { const KEZDO *a = void_a; const KEZDO *b = void_b; return (a->betu) < (b->betu); } //Perform sort
char betu
上排序。排序结构的一种方法是通过qsort
,但这需要下面说明的比较函数:
int compare(const void *void_a, const void *void_b)
{
const KEZDO *a = void_a;
const KEZDO *b = void_b;
return (a->betu) < (b->betu);
}
//Perform sort like this;
qsort((void *) &t, db, sizeof(KEZDO) , compare );
int比较(常量无效*无效a,常量无效*无效b)
{
常数KEZDO*a=void_a;
常数KEZDO*b=void_b;
返回(a->betu)<(b->betu);
}
//像这样表演;
qsort((void*)和t、db、sizeof(KEZDO)、compare;
此外,
qsort
在#include
中,首先,t
数组中每个对象的betu
字段没有初始化,因此if(t[i].betu==toupper(sajt[0])
调用未定义的行为。非常感谢:D