使用Xcode在C Bubblesort中对相同函数的访问错误

使用Xcode在C Bubblesort中对相同函数的访问错误,c,xcode,bubble-sort,C,Xcode,Bubble Sort,我正在用Xcode学习C,所以我一直在练习冒泡排序算法。 您可以在这里看到我的代码(失败)为bubbleSort1函数和bubbleSort2传递 #include <stdio.h> void swap(int *a, int *b){ int temp = *a; *a = *b; *b= temp; } void bubbleSort1(int arr[], int n) { int i, j; for (i = 0; i <

我正在用Xcode学习C,所以我一直在练习冒泡排序算法。 您可以在这里看到我的代码(失败)为bubbleSort1函数和bubbleSort2传递

#include <stdio.h>

void swap(int *a, int *b){
    int temp = *a;
    *a = *b;
    *b= temp;
}

void bubbleSort1(int arr[], int n)
{
    int i, j;
    for (i = 0; i < n-1; i++)


        for (j = 0; i < n-i-1; j++)
            if(arr[j] > arr[j+1])
                swap(&arr[j], &arr[j+1]);
}

void bubbleSort2(int arr[], int n)
{
    int i, j;
    for (i = 0; i < n-1; i++)

        // Last i elements are already in place
        for (j = 0; j < n-i-1; j++)
            if (arr[j] > arr[j+1])
                swap(&arr[j], &arr[j+1]);
}

void printArray(int arr[], int size){
    printf("Array:\t");
    for(int i=0; i<size;i++){
        printf("%d ", arr[i]);
    }
    puts("\n");
}

int main(){

    int array2[8] = {9, 15, 7, 4, 1, 11, 3, 4};
    int length2 = sizeof(array2)/sizeof(array2[0]);
    printArray(array2,length2);
    bubbleSort2(array2,length2);
    printArray(array2, length2);

    int array1[8] = {9, 15, 7, 4, 1, 11, 3, 4};
    int length1 = sizeof(array1)/sizeof(array1[0]);
    printArray(array1,length1);
    bubbleSort1(array1,length1);
    printArray(array1, length1);

    return 0;
}
#包括
无效交换(int*a,int*b){
int temp=*a;
*a=*b;
*b=温度;
}
无效气泡端口1(整数arr[],整数n)
{
int i,j;
对于(i=0;iarr[j+1])
掉期(&arr[j],&arr[j+1]);
}
无效气泡端口2(int arr[],int n)
{
int i,j;
对于(i=0;iarr[j+1])
掉期(&arr[j],&arr[j+1]);
}
void printary(int arr[],int size){
printf(“数组:\t”);

for(int i=0;i
bubbleSort1
的for循环不正确


(j=0;i应该是(j=0;j
气泡端口1
的for循环不正确


(j=0;i

void bubbleSort1(int arr[], int n)
{
    int i, j;
    for (i = 0; i < n-1; i++)
        for (j = 0; j < n-i-1; j++) // it's j not i
            if(arr[j] > arr[j+1])
                swap(&arr[j], &arr[j+1]);
}

如下更改此功能

void bubbleSort1(int arr[], int n)
{
    int i, j;
    for (i = 0; i < n-1; i++)
        for (j = 0; j < n-i-1; j++) // it's j not i
            if(arr[j] > arr[j+1])
                swap(&arr[j], &arr[j+1]);
}

我想我应该开始使用I和j的替代品,因为我似乎可以在代码中区分它们
I
j
对于这样的事情很常见,并且会在其他人的代码中到处弹出。也许可以尝试不同的字体(或更大的字体)为了帮助您区分它们,我想我应该开始使用I和j的替代品,因为我似乎可以在代码中区分它们
I
j
对于这样的事情很常见,并且会在其他人的代码中到处弹出。也许可以尝试不同的字体(或更大的字体)为了帮助你区分它们,这不是世界末日,有时会发生,继续编码:)这不是世界末日,有时会发生,继续编码:)