C语言暴力法,删除数组a[n]中的重复元素,且元素相对位置不变

由于是暴力法,该方法会将a[n]中的每个元素判断一遍,时间复杂度较高,且设置了一个辅助数组b[ ]用来存放不重复的元素。

count用于记录b[ ]中有多少个未重复的元素。

#include<stdio.h>
int main()
{
    int a[10];
    int b[10];
    int i=0,j=0,count=1;
    printf("请输入数组的值:\n");
    for(i=0;i<10;i++)
        scanf("%d",a+i);
    printf("原数组为:\n");
    for(i=0;i<10;i++)
        printf("%d ",a[i]);
    b[0]=a[0];//第一个元素先放入
    for(i=1;i<10;i++)
    {
        for(j=0;j<count;j++)
        {
            if(b[j]==a[i])
                break;//找到重复元素则跳出内循环
        }
        if(j==count)//如果没有找到重复元素,跳出内循环时j应该在count的位置
        {
            b[count]=a[i];
            count++;//更新b[]的元素,并更新count的值
        }
    }
    printf("\n");
    printf("删除后的数组为:\n");
    for(j=0;j<count;j++)
    printf("%d ",b[j]);
    return 0;
}

执行效果如下:

代码比较朴实,有问题欢迎指正0 .0

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值