C语言二维数组删去重复值
时间: 2024-10-27 11:00:34 浏览: 20
数据结构第二章作业答案参考(C语言)
在C语言中,二维数组通常用于表示表格或矩阵数据,删除其中重复值的操作可能会涉及到遍历和查找。由于C语言本身并不提供内置函数来直接删除数组中的元素,需要手动编写循环结构来完成这个任务。下面是一个简单的例子,展示了如何删除一维整数数组中的重复值:
```c
#include <stdio.h>
// 定义一个函数来检查是否数组中已经包含该元素
int contains(int arr[], int n, int element) {
for (int i = 0; i < n; i++) {
if (arr[i] == element)
return 1;
}
return 0;
}
// 删除数组中的重复值
void removeDuplicates(int arr[][2], int m, int n) {
// 遍历数组
for (int i = 0; i < m; i++) {
// 对当前行中的每个元素,检查是否有重复
for (int j = 0; j < n - 1; j++) {
if (contains(arr[i], j, arr[i][j])) { // 如果找到重复
for (int k = j + 1; k < n; k++) { // 将后面的元素向左移动
arr[i][k - 1] = arr[i][k];
}
// 减少数组长度
arr[i][n - 1] = 0;
break;
}
}
}
}
// 打印二维数组
void printArray(int arr[][2], int m, int n) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++)
printf("%d ", arr[i][j]);
printf("\n");
}
}
int main() {
int array[4][2] = {{1, 2}, {3, 4}, {2, 5}, {6, 7}};
int m = sizeof(array) / sizeof(array[0]);
int n = sizeof(array[0]) / sizeof(array[0][0]);
printf("Original Array:\n");
printArray(array, m, n);
removeDuplicates(array, m, n);
printf("\nArray after removing duplicates:\n");
printArray(array, m, n);
return 0;
}
```
这个示例程序首先创建了一个二维数组,然后调用`removeDuplicates`函数删除重复值,并最后打印处理后的数组。注意,这个算法会保留第一个出现的重复元素,后续的重复将被删除。
阅读全文