3.输入10个数,将他们由小到大排序

#include<stdio.h>

int main()
{
    int i, j;                           //循环变量
    int array[10];                      //存放10个整形数据的数组
    printf("请输入10个整数:\n");
    //循环输入数据
    for (int i = 0; i < 10; i++)
    {
        scanf_s("%d", &array[i]);
    }
    //前后数据比较
    for (i = 0; i < 10; i++)
    {
        for (j = i + 1; j < 10; j++)
        {
            //当前一个数据大于后一个时交换
            if (array[i] > array[j])
            {
                int temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
        }
    }
    printf("\n这10个数从小到大排序为:\n");
    //输出排序后的数据
    for (i = 0; i < 10; i++)
    {
        printf("%d ", array[i]);
    }
    


    return 0;
}

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 您可以使用C语言的冒泡排序算法来实现对二维数组的排序。以下是一个示例代码: ```c #include <stdio.h> int main() { int arr[3][3] = { {9, 5, 2}, {8, 3, 1}, {7, 6, 4} }; int temp; for (int i = 0; i < 3; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { if (arr[j][k] < arr[j+1][k]) { temp = arr[j][k]; arr[j][k] = arr[j+1][k]; arr[j+1][k] = temp; } } } } printf("最大排序后的数组为:\n"); for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { printf("%d ", arr[i][j]); } printf("\n"); } return 0; } ``` 这个程序将打印出以下结果: ``` 最大排序后的数组为: 9 6 4 8 5 2 7 3 1 ``` 这里使用了三层循环,第一层循环控制排序的轮数,第二层循环控制比较的次数,第三层循环控制比较的元素。在每一轮排序中,我们比较相邻两个行的元素,如果第一行的元素小于第二行的元素,就交换它们的位置。最后,我们打印出排序后的二维数组。 ### 回答2: 要选出3×3二维数组中的最大排序,我们可以使用选择排序的方法进行。选择排序的基本思想是每次遍历数组,找到当前未排序部分的最大值,并将其与未排序部分的第一个元素交换位置。这样,经过多次遍历和交换后,数组就可以按照从大到小的顺序排序。 首先,定义一个3×3的二维数组,用来保存输入的数据。然后,通过循环,依次输入数组的每个元素。 接下来,我们使用两层循环遍历整个二维数组。外层循环控制每一次比较的起始位置,内层循环用于查找当前未排序部分的最大值。 内层循环找到最大值后,将其与未排序部分的第一个元素交换位置。这样,当前未排序部分的最大值就被移动到了已排序部分的末尾。 重复进行上述操作,直到整个数组按照从大到小的顺序排列完成。最后,打印输出排序后的数组即可。 以下是一个示例代码: #include <stdio.h> int main() { int arr[3][3]; printf("请输入一个3×3的二维数组:\n"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { scanf("%d", &arr[i][j]); } } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { for (int k = j + 1; k < 3; k++) { if (arr[i][k] > arr[i][j]) { int temp = arr[i][k]; arr[i][k] = arr[i][j]; arr[i][j] = temp; } } } } printf("最大排序结果为:\n"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { printf("%d ", arr[i][j]); } printf("\n"); } return 0; } 这样,我们就可以通过C语言输入一个3×3的二维数组,并找出其中的最大排序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值