编写一个C语言程序,接受一个整数数组,数组长为20,删除数组中重复的元素。要求最终输 出的数组中元素是唯一的,并且保留原来的顺序
时间: 2024-10-05 16:03:10 浏览: 43
C语言程序设计-输入一维数组的8个元素,并将最大值与最后一个数交换
5星 · 资源好评率100%
在 C 语言中,我们可以编写一个简单的程序来实现这个功能。这里我们使用了两个遍历数组的方式,一个用来查找重复元素,一个用来保存非重复的元素。以下是程序的基本结构:
```c
#include <stdio.h>
#define ARRAY_SIZE 20
void removeDuplicates(int arr[], int* uniqueCount) {
int i, j, n = sizeof(arr) / sizeof(arr[0]);
*uniqueCount = 0; // 初始化唯一元素计数器
for (i = 0; i < n; ++i) { // 主遍历
bool isDuplicate = false;
// 检查当前元素是否已存在其他位置
for (j = 0; j < i && !isDuplicate; ++j) {
if (arr[i] == arr[j]) {
isDuplicate = true;
}
}
// 如果不是重复元素,则存储到新位置并更新计数器
if (!isDuplicate) {
arr[*uniqueCount++] = arr[i];
}
}
}
void printArray(int arr[], int count) {
for (int i = 0; i < count; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[ARRAY_SIZE] = {4, 6, 2, 4, 7, 6, 8, 2, 1, 9, 5, 1, 3, 7, 9, 3, 2, 8, 5, 6}; // 示例数组
int uniqueElementsCount = ARRAY_SIZE; // 初始假设所有元素都是独特的
removeDuplicates(arr, &uniqueElementsCount);
printf("去重后的数组(按原顺序): ");
printArray(arr, uniqueElementsCount);
return 0;
}
```
当你运行这个程序时,它会输出去重后的数组,保持原有的元素顺序。
阅读全文