利用函数和指针编写一个程序,要求输入10和个整数并存入数组中,然后定义一个函数删除重复元素,并输出

利用函数和指针编写一个程序,要求输入10和个整数并存入数组中,然后定义一个函数删除重复元素,并输出结果。... 利用函数和指针编写一个程序,要求输入10和个整数并存入数组中,然后定义一个函数删除重复元素,并输出结果。 展开
 我来答
neutri7
2016-05-30 · 超过17用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:14.4万
展开全部

测试:


#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;
}

追问
多谢了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式