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]);
}
}```