#include <stdio.h>

int main() { int a[10]; int i, j, t, z; printf('请输入十个地区的面积:\n'); for (i = 0; i < 10; i++) { z = i + 1; printf('第%d个的面积\n', z); scanf_s('%d', &a[i], sizeof(a[i])); } printf('\n'); for (j = 0; j < 9; j++) { for (i = 0; i < 9 - j; i++) { if (a[i] > a[i + 1]) { t = a[i]; a[i] = a[i + 1]; a[i + 1] = t; } } } printf('排列后的面积数据为:\n'); for (i = 0; i < 10; i++) printf('%d\t', a[i]); printf('\n'); return 0; }

代码有两处错误:

  1. scanf_s 函数需要添加参数,表示输入值的最大长度。修改为 scanf_s('%d', &a[i], sizeof(a[i]));

  2. 第二个 for 循环中的末尾多了一个分号,导致后面的 printf 语句无法执行。删除分号即可。

正确代码如下:

#include <stdio.h>

int main() { int a[10]; int i, j, t, z; printf('请输入十个地区的面积:\n'); for (i = 0; i < 10; i++) { z = i + 1; printf('第%d个的面积\n', z); scanf_s('%d', &a[i], sizeof(a[i])); } printf('\n'); for (j = 0; j < 9; j++) { for (i = 0; i < 9 - j; i++) { if (a[i] > a[i + 1]) { t = a[i]; a[i] = a[i + 1]; a[i + 1] = t; } } } printf('排列后的面积数据为:\n'); for (i = 0; i < 10; i++) printf('%d\t', a[i]); printf('\n'); return 0; }

C语言代码错误分析与修正:排序算法示例

原文地址: https://www.cveoy.top/t/topic/mXAH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录