这里我创建了一个对数组冒泡排序的函数,然后我放入一个数组进去实现冒泡排序,可不可以只实现在创建的函数中进行冒泡排序并打印,而原数组(在主函数里的)不被改变)

img

拷贝一份就可以了

#include<stdio.h>
#include<string.h>
void maopao(int *a,int n){
    int b[n],temp;
    for(int i=0;i<n;i++){
        b[i] = a[i];
    }
    for(int i=0;i<n-1;i++){
        for(int j=0;j<n-1-i;j++){
            if(b[j]>b[j+1]){
                temp=b[j];
                b[j]=b[j+1];
                b[j+1]=temp;
            }
        }
    }
    for(int i=0;i<n;i++){
        printf("%d ",b[i]);
    }
    printf("\n");
}
int main() {
    int a[5]={1,2,5,3,4};
    maopao(a,5);
    for(int i=0;i<5;i++){
        printf("%d ",a[i]);
    }
}