qqcmm1015 2023-05-16 21:49 采纳率: 61.8%
浏览 25
已结题

c语言整数去重找错误

Description

给定含有n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。

Input

输入一个整数n,表示序列有n个整数(0<n<=100000)

接下来输入n个整数,表示序列中的数,这些数在[0,100000]区间内。

Output

按照输入的顺序输出去重后的序列,整数之间用空格隔开。

Sample Input
8
1 2 4 3 1 2 4 3
Sample Output
1 2 4 3

#include<stdio.h>
int main()
{
    int n,i,j,k,max=-1;;
    while(scanf("%d",&n)!=EOF)
    {
        max=-1;
        int a[100001],b[100005];
        for(i=0;i<=n-1;i++)
        {
            scanf("%d",&a[i]);
            if(a[i]>max) max=a[i];
        }
        printf("%d",a[0]);
        b[a[0]]=-1;
        for(k=1;k<=n-1;k++)
        {
            if(b[a[k]]==0)
            {
                printf(" %d",a[k]);
                b[a[k]]=-1;
            }
        }
        printf("\n");
    }
    return 0;
}


以上代码提交后显示错误

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2023-05-16 23:02
    关注

    数组 b[] 没有初始化,修改如下,供参考:

    #include<stdio.h>
    int main()
    {
        int n,i,j,k;  //max=-1;
        //while(scanf("%d",&n)!=EOF)
        //{
            //max=-1;
        int a[100001] = {0}, b[100005] = {0}; //修改
        scanf("%d", &n);
        for(i=0;i<=n-1;i++)
        {
            scanf("%d",&a[i]);
                //if(a[i]>max) max=a[i];
        }
        printf("%d",a[0]);
        b[a[0]] = -1;
        for(k=1;k<=n-1;k++)
        {
            if(b[a[k]] == 0)
            {
                printf(" %d",a[k]);
                b[a[k]]=-1;
            }
        }
        printf("\n");
        //}
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月25日
  • 已采纳回答 5月17日
  • 创建了问题 5月16日

悬赏问题

  • ¥15 kotlin multiplaform 的共享模块支持蓝牙吗还是说安卓和ios的蓝牙都要自己配
  • ¥15 为什么我的查询总是显示无数据,该怎么修改呢(语言-java)
  • ¥15 IDDPM采样结果异常
  • ¥100 求一个,王者荣耀查询隐藏战绩的教材,爬虫代码
  • ¥60 Cocos creator缓动问题
  • ¥15 专业问题提问,7月5号2点之前
  • ¥25 使用cube ai 导入onnx模型时报错
  • ¥15 关于#微信小程序#的问题:用一个网页显示所有关联的微信小程序数据,包括每个小程序的用户访问量
  • ¥15 root的安卓12系统上,如何使apk获得root或者高级别的系统权限?
  • ¥20 关于#matlab#的问题:如果用MATLAB函数delayseq可以对分数延时,但是延时后波形较原波形有幅度上的改变