c语言删除数组重复的数
时间: 2023-09-13 15:08:33 浏览: 269
可以采用双重循环来实现删除数组中的重复元素,具体的实现方法如下:
```c
int main() {
int arr[10] = {1, 2, 3, 2, 4, 3, 5, 6, 4, 7};
int len = sizeof(arr) / sizeof(arr[0]);
int i, j, k;
// 双重循环删除重复元素
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
for (k = j; k < len; k++) {
arr[k] = arr[k + 1];
}
len--;
j--;
}
}
}
// 输出删除重复元素后的数组
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
上述代码中,首先定义了一个数组 `arr`,然后计算出了数组的长度 `len`。接着采用双重循环来遍历数组,如果发现重复元素,则将后面的元素依次向前移动,然后将数组长度减一。最后输出删除重复元素后的数组。
相关问题
c语言删除数组重复元素
删除C语言数组中的重复元素的方法有多种。其中一种方法是使用两层for循环进行比较,若发现重复元素,则将后面的元素向前移动一位,并将数组长度减1。以下是一个示例代码:
#include <stdio.h>
#define MAX_SIZE 100
int removeDuplicates(int arr[], int n) {
int i, j, k;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n;) {
if (arr[j] == arr[i]) {
for (k = j; k < n; k++) {
arr[k] = arr[k + 1];
}
n--;
} else {
j++;
}
}
}
return n;
}
int main() {
int arr[MAX_SIZE];
int n, i;
printf("Enter the size of the array: ");
scanf("%d", &n);
printf("Enter the elements of the array: ");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
n = removeDuplicates(arr, n);
printf("Array after removing duplicates: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
c语言 删除数组重复元素
以下是C语言删除数组重复元素的代码实现:
```c
#include <stdio.h>
int removeDuplicates(int arr[], int n)
{
int i, j, k;
for (i = 0; i < n; ++i)
{
for (j = i + 1; j < n;)
{
if (arr[j] == arr[i])
{
for (k = j; k < n; ++k)
{
arr[k] = arr[k + 1];
}
--n;
}
else
{
++j;
}
}
}
return n;
}
int main()
{
int arr[10];
int i;
for (i = 0; i < 10; ++i)
{
scanf("%d", &arr[i]);
}
int m = removeDuplicates(arr, 10);
for (i = 0; i < m; ++i)
{
printf("%d ", arr[i]);
}
printf("\n");
printf("%d", m);
return 0;
}
```
阅读全文