#include <stdio.h> // 插入元素到已排好序的数组中 void insert(int arr[], int n, int x) { int i, j; for (i = 0; i < n; i++) { if (arr[i] > x) { // 找到第一个比 x 大的元素的位置 break; } } for (j = n - 1; j >= i; j--) { // 从数组末尾开始向后移动,腾出位置给 x arr[j + 1] = arr[j]; } // 插入 x arr[i] = x; } int main() { int arr[] = {1, 3, 4, 7, 9}; int n = sizeof(arr) / sizeof(arr[0]); int x; printf("请输入要插入的数:"); scanf("%d", &x); insert(arr, n, x); printf("插入后的数组为:"); for (int i = 0; i < n + 1; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; }在visualc++6.0中报错 怎么修改
时间: 2024-03-15 20:45:25 浏览: 64
c语言必背的典型程序设计题目-数组、函数-------答案.doc
在 Visual C++ 6.0 中,您可能会遇到以下错误:
```
error C2275: 'i' : illegal use of this type as an expression
error C2275: 'j' : illegal use of this type as an expression
```
这是因为在 C++ 中,变量声明必须放在代码的最前面。您可以把 `for` 循环中的变量定义提前到函数的开头,或者使用 C99 中引入的变量声明和初始化语法:
```c
#include <stdio.h>
void insert(int arr[], int n, int x) {
int i, j;
for (i = 0; i < n; i++) {
if (arr[i] > x) {
break;
}
}
for (j = n - 1; j >= i; j--) {
arr[j + 1] = arr[j];
}
arr[i] = x;
}
int main() {
int arr[] = {1, 3, 4, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int x;
printf("请输入要插入的数:");
scanf("%d", &x);
insert(arr, n, x);
printf("插入后的数组为:");
for (int i = 0; i < n + 1; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个程序使用了变量声明和初始化语法来定义循环变量 `i` 和 `j`。这样做可以避免在循环中定义变量,也可以使代码更加清晰易懂。
阅读全文