c - 如何将结构的成员与冒泡排序保持在一起?

标签 c sorting bubble-sort

我已经在 .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/

相关文章:

在c中检查时间

django-admin - 按 __unicode()__ 方法的输出对 Django 管理更改列表列进行排序

c# - 根据第一个索引值对二维列表进行排序

java - Collections.sort 和冒泡排序

java - 为什么 QuickSort 比 BubbleSort 慢这么多?

c - 在 C 中的 while 循环条件中使用赋值运算符

c - C 函数中的指针

Android 链接 .so 用于命令行可执行文件?

arrays - 在 ruby​​ 中对数字和字符串数组进行排序的有效方法?

c - 为什么我的冒泡排序实现打印了额外的数字?