|
发表于 2023-4-21 15:23:14
|
显示全部楼层
首先,我看到你的代码中有一些小问题。根据题目描述,你需要对10个整数进行排序,但是你的for循环只遍历到9,因此数组的最后一个整数没有被包括在内。接下来,我会为你修改代码并解释我的修改。
修改后的代码如下:
- #include<stdio.h>
- void main()
- {
- int i, j, min, s;
- int a[10];
- for (i = 0; i < 10; i++) // 修改此处,将9改为10
- scanf("%d", &a[i]);
- for (i = 0; i < 9; i++)
- {
- for (min = i, j = i + 1; j < 10; j++)
- if (a[j] < a[min])
- min = j;
- s = a[min];
- a[min] = a[i];
- a[i] = s;
- }
- for (i = 0; i < 10; i++) // 修改此处,将9改为10
- {
- printf("%d", a[i]);
- if (i < 9) // 添加此处,用于在数字之间添加空格
- printf(" ");
- }
- printf("\n");
- }
复制代码
这里的修改有:
1. 在输入和输出的循环中,将9改为10,以包括数组的最后一个元素。
2. 在输出循环中,添加了一个判断语句,用于在数字之间添加空格,使输出更加清晰。
现在,当你运行这个修改后的程序并输入题目给定的测试数据时,你应该能得到正确的结果:
- 程序输入参数如下
- 1 16 5 98 23 119 18 75 65 81
- 程序运行结果如下
- 1 5 16 18 23 65 75 81 98 119
复制代码 |
|