我已经在 .csv 文件中创建了一个姓名列表,我正在尝试按字母顺序对它们进行排序。现在我有一个结构数组。该结构只有 2 个成员,名字和姓氏。我已经让我的冒泡排序根据我想要的名字进行排序,但我怎样才能保留姓氏呢?当我打印数组时,姓氏不与名字对齐。
void bubbleSort(cred name[], int n) {
char temp[25];
int i,j;
for(i=1;i<=n;i++)
for(j=0;j<=n-i;j++)
if(strcmp(name[j].first,name[j+1].first)>0)
{
strcpy(temp,name[j].first);
strcpy(name[j].first,name[j+1].first);
strcpy(name[j+1].first,temp);
}
printf("The strings appears after sorting :\n");
for(i=0;i<=n;i++)
printf("%s %s\n",name[i].first,name[i].last);
}
最佳答案
我认为你的逻辑似乎是合理的,有人可以自由地纠正我,但你也应该在交换名字时交换你的姓氏。
您也可以只创建一个 cred 类型的临时对象,将数组的前一个元素与下一个元素交换,两者都是 cred 类型。
关于c - 如何将结构的成员与冒泡排序保持在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49745313/