利用函数和指针编写一个程序,要求输入10和个整数并存入数组中,然后定义一个函数删除重复元素,并输出
测试:
#include <stdio.h>
#include <stdlib.h>
void delete_duplicate(int* array, int* size)
{
int i, j, k;
int* temp_array = (int*)malloc((*size) * sizeof(int));
j = 0;
for(i = 0; i < *size; i++)
{
if(i == 0){
temp_array[j] = array[i];
j++;
}
else{
for(k = 0; k < j; k++)
{
if(array[i] == temp_array[k]){
break;
}
}
if(k == j){
temp_array[j] = array[i];
j++;
}
}
}
for(i = 0; i < *size; i++)
{
*(array+i) = 0;
}
for(i = 0; i < j; i++)
{
*(array+i) = *(temp_array+i);
}
*size = j;
free(temp_array);
}
#define ARRAY_MAXLEN 10
int main(int argc, char *argv[])
{
int array[ARRAY_MAXLEN];
int size = ARRAY_MAXLEN;
int i;
printf("输入数组(10个元素): ");
for(i = 0; i < ARRAY_MAXLEN; i++)
{
scanf("%d", &array[i]);
}
printf("\n未处理的原始数组有%d个整数:", size);
for(i = 0; i < ARRAY_MAXLEN; i++)
{
printf("%d ", array[i]);
}
/* 调用函数delete_duplicate(int* array, int* size) */
delete_duplicate(array, &size);
printf("\n\n删除数组中的重复整数后,还剩%d个整数:", size);
for(i = 0; i < size; i++)
{
printf("%d ", array[i]);
}
return 0;
}
多谢了