编写一个C语言程序,接受一个整数数组,数组长为20,删除数组中重复的元素。要求最终输出的数组中元素是唯一的,并且保留原来的顺序输入:[1,2,2,3,4,4,5]输出:[1,2,3,4,5]
时间: 2024-10-06 20:04:05 浏览: 22
在C语言中,你可以通过遍历数组并使用一个辅助数组来存储非重复的元素来实现这个功能。以下是简单的步骤:
```c
#include <stdio.h>
#define MAX_SIZE 20
void removeDuplicates(int arr[], int n) {
// 创建一个新的辅助数组,用于存放非重复元素
int unique[MAX_SIZE];
int count = 0; // 记录unique数组中的元素个数
for (int i = 0; i < n; i++) {
// 如果当前元素不在辅助数组中,则添加到辅助数组并更新count
if (unique[count] != arr[i]) {
unique[count++] = arr[i];
}
}
// 输出唯一元素到原数组的位置
for (int i = 0; i < count; i++) {
arr[i] = unique[i];
}
arr[count] = '\0'; // 结束符,表示数组已填充完毕
}
int main() {
int arr[] = {1, 2, 2, 3, 4, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
removeDuplicates(arr, n);
printf("\nArray with duplicates removed and original order preserved: ");
for (int i = 0; arr[i] != '\0'; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
当你运行这个程序,它会删除给定数组中的重复元素,并保持原始的顺序。注意,这种方法不会改变原数组的大小,如果需要减小数组长度,你需要先检查一下`count`。
阅读全文