如果需要手动输入数组,怎么修改
时间: 2024-10-05 17:03:11 浏览: 15
如果你想让用户手动输入数组元素,你可以将上述程序稍作修改,在 `main()` 函数里添加用户输入的部分。下面是一个修改后的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 引入处理内存分配的头文件
#define ARRAY_SIZE 20
void removeDuplicates(int arr[], int* uniqueCount) {
... (之前的 removeDuplicates 函数不变)
}
void inputArray(int arr[]) {
int i;
printf("请输入 %d 个整数(空格分隔):\n", ARRAY_SIZE);
for (i = 0; i < ARRAY_SIZE; ++i) {
scanf("%d", &arr[i]);
}
}
void printArray(int arr[], int count) {
... (之前的 printArray 函数不变)
}
int main() {
int arr[ARRAY_SIZE]; // 去掉数组初始值,改为动态分配
int uniqueElementsCount = ARRAY_SIZE; // 初始化唯一元素计数器
inputArray(arr); // 从用户处获取数组元素
removeDuplicates(arr, &uniqueElementsCount);
printf("去重后的数组(按原顺序): ");
printArray(arr, uniqueElementsCount);
// 回收动态分配的内存
free(arr);
return 0;
}
```
现在程序会提示用户逐个输入数组元素,然后进行去重操作。注意,为了防止内存泄漏,程序最后还需要调用 `free(arr)` 来释放动态分配的内存。
阅读全文