|
发表于 2020-11-16 21:46:45
|
显示全部楼层
本帖最后由 风过无痕1989 于 2020-11-16 21:47 编辑
程序看起来都差不多,但是细节决定一切,你的程序帮你修改好了
- #include<stdio.h>
- int main()
- {
- int n, i, j, temp, k, a[100];
- scanf("%d", &n); // 控制格式错误,不能写成 n=%d
- for (i = 0; i < n; i++)
- scanf("%d", &a[i]); // 对数组元素赋值,需要带上下标
- for (i = 0; i < n; i++)
- {
- /* k = i; */ // 此语句没有必要
- for (j = 0; j <= n - 1; j++) // n + 1 出界了
- {
- if (a[j] < a[j + 1])
- {
- temp = a[j];
- a[j] = a[j + 1];
- a[j + 1] = temp;
- }
- }
- /* if (i != k) //看k是不是i的那个位置
- {
- temp = a; a = a[k]; a = temp;
- } */ // 此段程序没有必要
- }
- for (i = 0; i < n; i++)
- printf("%d", a[i]); // 输出数组要带上下标,控制格式中不要换行,不美观
- printf("\n"); // 在此加一个换行
- return 0;
- }
复制代码 |
|