大一C语言数组练习(第二题)

img

#include <stdio.h>
int a[20];
//排序
void sortFun( int a[], int n ,int order) {
    int i,temp,j,k;
    for(i=0; i<n-1; i++) {
        for(j=0; j<n-i-1; j++) {
            if(order == 1) {
                if(a[j]<a[j+1]) {
                    temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }else{
                if(a[j]>a[j+1]) {
                    temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }
    }
}
int main() {
    int n,order,i;
    printf("输入n的值:");
    scanf("%d",&n);
    printf("输入%d个整数:\n",n);
    for(i=0; i<n; i++) {
        scanf("%d",&a[i]);
    }
    printf("输入排序顺序,1表示从大到小,否则表示从小到大:");
    scanf("%d",&order);
    sortFun(a,n,order);
    printf("排序后的数组:\n"); 
    for(i=0; i<n; i++) {
        printf("%d ",a[i]);
    }
    return 0;
}