数组+交换+排序

103 阅读1分钟

1.得到新数组:循环套scanf 2.交换:定义一个空位(int t) -->储存一下(t = arr[m]) -->arr[m] = arr[n] -->arr[n] = t 3.[1]排序:```c #include<stdio.h> void swap(int arr[],int m,int n){ int t = arr[m]; arr[m] = arr[n]; arr[n] = t; } int main () { // int ar[5]; // int arr[5]; // for(int i = 0;i<5;i++){ // printf("请输入第%d个数字",i+1); // scanf("%d",&ar[i]); // } // for(int i = 0;i<5;i++){ // arr[i] = ar[4-i]; // printf("%d",arr[i]);

// }
int arr[5] = {1,2,3,4,5};
swap(arr,1,2);
for(int i = 0;i<5;i++){
    printf("%d",arr[i]);
}

} [2]洗牌c #include<stdio.h> #include<time.h> #include<stdlib.h> void swap(int arr[],int m,int n){ int t = arr[m]; arr[m] = arr[n]; arr[n] = t; } int main(){ srand(time(NULL)); int arr[10]; for(int i=0;i<10;i++){ printf("请输入第%d个数:",i+1); scanf("%d",&arr[i]);

}
for(int i=0;i<10;i++){
    int j = rand()%10;
    int k = rand()%10;
    swap(arr,k,j);
    printf("%d ",arr[i]);
}

} [3]冒泡排序c #include<stdio.h>

void swap(int arr[],int m,int n){ int t = arr[m]; arr[m] = arr[n]; arr[n] = t; } int main () { int flag = 1;

int arr[9] = {4,56,45,7,2,49,71,6,3};
int len = sizeof(arr)/sizeof(arr[0]);
for (int i = 0;i<len - 1;i++){
    for (int j = 0;j<8-i;j++){
        if (arr[j]>arr[j+1]){
            swap(arr,j,j+1);
            flag = 0;
        }
    }
    if (flag == 1){
        break;
    }

}
printf("排序后的数组为:");
for (int i = 0;i<9;i++){
    printf("%d ",arr[i]);
}

} [4]选择排序c #include<stdio.h>

void swap(int arr[],int m,int n){ int t = arr[m]; arr[m] = arr[n]; arr[n] = t; } int main () { //选择排序

int arr[9] = {4,56,45,7,2,49,71,6,3};
int len = sizeof(arr)/sizeof(arr[0]);
for (int i = 0;i<len-1;i++){
    int k = i;
    for (int j = i+1;j<len ;j++){
        if (arr[k]>arr[j]){
            k = j;
            
        }
    }
    if(k != i){
        swap(arr,i,k);
    }
    

}
printf("排序后的数组为:");
for (int i = 0;i<9;i++){
    printf("%d ",arr[i]);
}

}```