C语言 删除输入的数组中的重复元素(最多20个元素) 要求编写函数,且头文件只有stdio.h
发布网友
发布时间:2022-06-08 02:37
我来回答
共1个回答
热心网友
时间:2023-11-04 15:35
#include <stdio.h>
// *n是数组元素个数
void Delete_Same(int a[], int *n)
{
int i, j;
int tag[20] = {0}; //tag[i]标记a[i]是否使用过
for(i = 0; i < *n; ++i)
{
if( tag[i] )
continue;
else{
for(j = i+1; j < *n; ++j)
if( a[i] == a[j] )
tag[j] = 1;
}
}
// 最后元素移动在数组前面
for(i = j = 0; i < *n; ++i)
if( !tag[i] )
a[j++] = a[i];
// 修改数组元素个数
*n = j;
}
int main(void)
{
int a[] = {7,6,7,0,1,0,3};
int n = 7;
Delete_Same(a, &n);
printf("%d\n", n);
for(int i = 0; i < n; ++i)
printf("%d ", a[i]);
return 0;
}
追问函数里n前面为什么加*