C语言程序题:输入4个数a,b,c,d,要求从小到大排列的顺序输出。变量用t.

2025-03-22 17:05:57
推荐回答(2个)
回答(1):

排序有特定必须用什么方法吗?如果没有我默认用冒泡排序啦~~

#include 
 
#define ARRAY_LEN 100 /*数组长度*/

void createArr (int arr[], int len) { /*录入数组*/
    int i;
    for (i = 0; i < len; i++)
        scanf ("%d", &arr[i]);
}

void copyArr (int arr_target[], int arr[], int len) { /*复制数组*/
    int i;
    for (i = 0; i < len; i++)
        arr_target[i] = arr[i];
}

void bubbleSort(int arr[], int len) { /*冒泡排序*/
    int i, j, temp;
    for (i = 0; i < len - 1; i++)
        for (j = 0; j < len - 1 - i; j++)
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
}

void printArr (int arr[], int len) { /*打印数组*/
    int i;
    for (i = 0; i printf("%d\t",arr[i]);
    printf("\n");
}

int main(void) {
    int len, arr[ARRAY_LEN], arr_target[ARRAY_LEN];
    
    printf("请输入数组长度:\n");
    scanf("%d",&len);
    printf ("======================================================\n\n");
     
    printf("请输入数组内容,共%d个元素: \n",len);
    createArr (arr, len);
    copyArr (arr_target, arr, len);
    printf ("======================================================\n\n");

    printf ("所输入数组采用冒泡排序法升序排列结果为:\n");
    bubbleSort (arr_target, len);
    printArr (arr_target, len);

    return 0;
}

执行结果

回答(2):

#include
int main()
{
    int a,b,c,d,t;
    printf("请输入4个数:");
    scanf("%d,%d,%d,%d",&a,&b,&c,&d);
    if(a>b)
    {
        t=a;
        a=b;
        b=t;
    }
    if(a>c)
    {
        t=a;
        a=c;
        c=t;
    }
    if(a>d)
    {
        t=a;
        a=d;
        d=t;
    }
    if(b>c)
    {
        t=b;
        b=c;
        c=t;
    }
    if(b>d)
    {
        t=b;
        b=d;
        d=t;
    }
    if(c>d)
    {
        t=c;
        c=d;
        d=t;
    }
    printf("%d,%d,%d,%d\n",a,b,c,d);
    return 0;
}