#C语言输入 n个整数,查找井删除 重复的数字,打印結果。要求不可以用到动态数组
时间: 2024-02-11 13:05:07 浏览: 68
以下是不使用动态数组,使用普通数组实现输入 n 个整数,查找并删除重复数字的C语言代码:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入整数个数:\n");
scanf("%d", &n);
int arr[1000]; // 假设数组长度最大为 1000
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 查找并删除重复数字
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n;) {
if (arr[j] == arr[i]) {
for (int k = j; k < n; k++) {
arr[k] = arr[k + 1];
}
n--; // 由于删除了一个元素,所以 n 需要自减
} else {
j++;
}
}
}
// 打印剩下的数字
printf("剩下的数字为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这段代码与前两段代码类似,只是在申请数组内存时使用了固定的数组长度,并且数组长度最大为 1000(可以根据实际情况自行调整)。在数组访问时,使用了下标的方式访问和修改数组元素,即 `arr[i]`。需要注意的是,由于数组长度是固定的,因此在删除数字时,需要将后面的数字向前移动,同时需要将数组长度 n 自减。
阅读全文