在C中使用指针对结构进行冒泡排序

耶拉西尔

我想使用气泡排序算法和C语言中的指针对结构数组进行排序。我有一个cars结构:

typedef struct{
    char model[30];
    int hp;
    int price;
}cars;

我为12个项目分配了内存:

cars *pointer = (cars*)malloc(12*sizeof(cars));

并从文件中读取数据:

for (i = 0; i <number ; i++) {
    fscanf(file, "%s %i %i\n", (pointer+i)->model, &(pointer+i)->hp, &(pointer+i)->price);
}

我将指针传递ptrbubbleSort函数:

bubbleSort(pointer, number);

这是我的bubbleSort功能:

void bubbleSort(cars *x, int size) {
    int i, j;
    for (i=0;i<size-1;i++) {
    int swapped = 0;
    for (j = 0; j < size - 1 - i; j++) {
        if ( (x+i)->hp > (x+j+1)->hp ) {
            cars *temp = (x+j+1);
            x[j+1] = x[j];
            x[j] = *temp;
            swapped = 1;
        }
    }
        if (!swapped) {
        //return;
        }
    }
}

问题是我不知道如何使用指针交换项目。

伏安

考虑以下用于排序功能的解决方案:

void bubbleSort(cars *x, int size) 
{
    int i, j;
    for (i = 0; i < size-1; i++) 
    {
        for (j = 0; j < size-1-i; j++) 
        {
            if ( x[j].hp > x[j+1].hp ) 
            {
               cars temp = x[j+1];
               x[j+1] = x[j];
               x[j] = temp;
            }
        }
    }
}

问题出在数据交换部分

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用指针对数组进行排序-C编程

来自分类Dev

C编程:使用指针对数组进行排序的函数

来自分类Dev

使用指针对用户定义对象的C ++数组进行排序?

来自分类Dev

使用冒泡排序C ++对结构数组的成员进行优先级排序

来自分类Dev

在 Ruby 中使用冒泡排序对数组进行排序

来自分类Dev

使用快速排序使用指针对数组进行排序

来自分类Dev

使用qsort对结构指针数组进行排序

来自分类Dev

使用qsort对结构指针数组进行排序

来自分类Dev

C中使用结构的指针

来自分类Dev

使用指针对结构数组进行C语言中的循环控制

来自分类Dev

使用指针对结构数组进行C语言中的循环控制

来自分类Dev

用指针对c中的数组进行排序

来自分类Dev

在 C++ 中使用冒泡排序时的意外值

来自分类Dev

使用回调开关对向量进行C ++冒泡排序

来自分类Dev

C ++中基于指针的冒泡排序

来自分类Dev

带指针的C++冒泡排序函数

来自分类Dev

冒泡对函数中其他数组的指针数组进行排序(C)

来自分类Dev

如何在PHP中使用冒泡排序对多维数组进行排序?

来自分类Dev

C-与直接对结构进行排序相比,对结构的指针数组进行排序的速度慢(qsort)

来自分类Dev

在C中使用指针分配结构

来自分类Dev

C ++在函数中使用指向结构的指针

来自分类Dev

尝试通过仅重新排列指针对冒泡列表进行冒泡排序。我的代码针对我要摆脱的2节点列表提供了一种解决方法

来自分类Dev

冒泡对C中的链表进行排序

来自分类Dev

用C对数组进行冒泡排序

来自分类Dev

使用 2 函数进行冒泡排序

来自分类Dev

使用带有指针的冒泡排序按升序排序

来自分类Dev

如何在C ++中使用doubly(**)指针进行常规树数据结构?

来自分类Dev

C结构继承指针对齐

来自分类Dev

如何消除结构中的重复项,并在 C 中使用 qsort 对它们进行排序

Related 相关文章

  1. 1

    使用指针对数组进行排序-C编程

  2. 2

    C编程:使用指针对数组进行排序的函数

  3. 3

    使用指针对用户定义对象的C ++数组进行排序?

  4. 4

    使用冒泡排序C ++对结构数组的成员进行优先级排序

  5. 5

    在 Ruby 中使用冒泡排序对数组进行排序

  6. 6

    使用快速排序使用指针对数组进行排序

  7. 7

    使用qsort对结构指针数组进行排序

  8. 8

    使用qsort对结构指针数组进行排序

  9. 9

    C中使用结构的指针

  10. 10

    使用指针对结构数组进行C语言中的循环控制

  11. 11

    使用指针对结构数组进行C语言中的循环控制

  12. 12

    用指针对c中的数组进行排序

  13. 13

    在 C++ 中使用冒泡排序时的意外值

  14. 14

    使用回调开关对向量进行C ++冒泡排序

  15. 15

    C ++中基于指针的冒泡排序

  16. 16

    带指针的C++冒泡排序函数

  17. 17

    冒泡对函数中其他数组的指针数组进行排序(C)

  18. 18

    如何在PHP中使用冒泡排序对多维数组进行排序?

  19. 19

    C-与直接对结构进行排序相比,对结构的指针数组进行排序的速度慢(qsort)

  20. 20

    在C中使用指针分配结构

  21. 21

    C ++在函数中使用指向结构的指针

  22. 22

    尝试通过仅重新排列指针对冒泡列表进行冒泡排序。我的代码针对我要摆脱的2节点列表提供了一种解决方法

  23. 23

    冒泡对C中的链表进行排序

  24. 24

    用C对数组进行冒泡排序

  25. 25

    使用 2 函数进行冒泡排序

  26. 26

    使用带有指针的冒泡排序按升序排序

  27. 27

    如何在C ++中使用doubly(**)指针进行常规树数据结构?

  28. 28

    C结构继承指针对齐

  29. 29

    如何消除结构中的重复项,并在 C 中使用 qsort 对它们进行排序

热门标签

归档