首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用C语言从数组中删除重复项

使用C语言从数组中删除重复项
EN

Stack Overflow用户
提问于 2019-06-17 13:33:28
回答 2查看 87关注 0票数 2

从排序的数组中删除重复项

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
#include <stdlib.h>

int main() {
    int arr[12] = { 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5 };
    int temp[12];
    int i, j, k, n = 12;

    for (i = 0; i < n - 1; i++) {
        if (arr[i] != arr[i + 1]) {
            temp[j] = arr[i];
            j++;
        }
    }

    temp[j] = arr[n - 1];

    for (k = 0; k <= j; k++) {
        printf("%d\n", temp[k]);
    }

    return 0;
}

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
6356652
1955753237
1956070172
6356716
1955750536
8
1955687363
1955687354
1
2
3
4
5

Process returned 0 (0x0)   execution time : 0.014 s
Press any key to continue.

我不希望将这些数字打印出来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
6356652
1955753237
1956070172
6356716
1955750536
8
1955687363
1955687354
EN

回答 2

Stack Overflow用户

发布于 2019-06-17 14:04:38

您没有初始化变量j。所以使用未初始化的变量会调用未定义的行为。

最好在一个循环中形成不重复的数组,而不是将循环拆分成一个循环,然后在循环之后再创建一条语句。

例如,您可以按照演示程序中所示的方式编写一个单独的函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

size_t remove_copy( const int a[], int b[], size_t n )
{
    size_t j = 0;

    for ( size_t i = 0; i < n; i++ )
    {
        if ( i == 0 || a[i] != b[j-1] ) b[j++] = a[i];
    }

    return j;
}

int main(void) 
{
    int a[] = { 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5 };
    int b[sizeof( a ) / sizeof( *a )];
    const size_t N = sizeof( a ) / sizeof( *a );

    for ( size_t i = 0; i < N; i++ ) printf( "%d ", a[i] );
    putchar( '\n' );

    size_t n = remove_copy( a, b, N );

    for ( size_t i = 0; i < n; i++ ) printf( "%d ", b[i] );
    putchar( '\n' );

    return 0;
}

程序输出为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 2 2 3 3 3 4 4 4 4 5 5 
1 2 3 4 5 
票数 4
EN

Stack Overflow用户

发布于 2019-06-27 10:36:57

您的代码和逻辑是正确的。但是你犯了一个错误,没有初始化j = 0。因此,你得到了一些胡言乱语的值。因此,我更正并执行了它,并得到了正确的答案。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int main() {
    int arr[12] = { 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5 };
    int temp[12];
    int i, j = 0, k, n = 12;

    for (i = 0; i < n - 1; i++) {
        if (arr[i] != arr[i + 1]) {
            temp[j] = arr[i];
            j++;
        }
    }

    temp[j] = arr[n - 1];

    for (k = 0; k <= j; k++) {
        printf("%d\n", temp[k]);
    }

    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56632433

复制
相关文章
.love 域名|因你而爱
爱要大声说出来! 用.love域名谱写你们的故事 送给最爱的TA 2021年2月1日至28日 .love普通词新注只要25元/年 .love域名为新通用顶级域名,2018年1月23日,工信部正式给予批复,.love域名的网站可以进行ICP备案,正常在国内使用。 love象征着浪漫、家庭、情感、热情和赞颂。love总是和温暖、喜悦及幸福联系在一起。love是一个极具吸引力的英文单词,而.love作为域名后缀也是一个极具吸引力的域名。其含义“爱”,更是意味着唤醒你的感官,触发你的记忆,刺激你的思想。 点
腾讯云DNSPod团队
2021/01/29
1.3K0
[C#]控件大小随窗体改变而改变
这篇文章写的很好,一般我会选择第一种。 我改了一下格式,便于大家复制黏贴,O(∩_∩)O。
祥知道
2020/03/10
3K0
这个 Github 仓库因你而精彩
我于今年 6 月份创建自己微信读者群。群组人数从一开始零星几人到现在的两百多号人。群里面的小伙伴都非常好学,经常来群里面讨论技术问题。我自己从中学到很多知识,也认识很多新朋友。微信群中也有一些刚入门的 Python 学习者,大部分人的基础已经学得差不多,一直渴望能实战。因此,我一直在寻找一些比较好的项目。
猴哥yuri
2018/09/21
6830
这个 Github 仓库因你而精彩
servlet异步请求
其中第二步处理业务逻辑时候很可以碰到比较耗时的任务,此时servlet主线程会阻塞等待完成业务处理,对于并发比较大的请求可能会产生性能瓶颈,则servlet3.0之后再此处做了调整,引入了异步的概念。
全栈程序员站长
2022/09/18
9120
servlet异步请求
Spring 异步请求
With the above in mind, the following is the sequence of events for async request processing with a Callable:
数媒派
2022/12/01
8100
wpf 控件大小随窗体大小改变而改变
WPF可以直接通过设置图形类控件的水平和垂直Alighment为Stretch实现 用一个ViewBox装上所有的Window内容然后当window缩放时就可以一起放大缩小了 ViewBox的显示机制是,先在内存中把按照逻辑大小把子控件显示出来,然后等比例的缩放显示到ViewBox的客户区 例: Button btn = new Button(); btn.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; btn.Vertic
hbbliyong
2018/03/06
3.3K0
信安之路因你我而更精彩
Hi,我是 Cherishao , 今天我想给大家分享下我的信安之路,故事很平淡,但有酒有肉有烧烤。
信安之路
2018/12/06
6490
【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 ) 【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )
韩曙亮
2023/03/29
16.6K0
故障分析 | TRUNCATE 到底因何而慢?
一个爱笑的江苏苏宁银行 数据库工程师,主要负责数据库日常运维、自动化建设、DMP 平台运维。擅长 MySQL、Python、Oracle,爱好骑行、研究技术。
爱可生开源社区
2023/08/18
1.7K0
故障分析 | TRUNCATE 到底因何而慢?
python 异步post请求
import aiohttp headers = {'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; Nexus 5 Build/MMB29K) tuhuAndroid 5.24.6', 'content-type': 'application/json'} async with aiohttp.ClientSession(headers=headers) as sess:
Wyc
2021/08/13
3.5K0
IOS中get同步异步请求与post同步异步请求
#import "ViewController.h" @interface ViewController () @property(nonatomic,strong)UITextView *textView; @property(nonatomic,copy)NSString *BASE_URL; @property(nonatomic,copy)NSString *BASE_URL1_PARAM; @property(nonatomic,strong)NSMutableData *mutableData;
好派笔记
2021/10/29
2.8K0
SpringBoot异步请求和异步调用
可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如长时间的运算)时再对客户端进行响应。
Ant丶
2022/03/01
2.2K0
js异步请求问题
首先想到的是,把promise存到数组,然后用Promise.all()把数据搞定
治电小白菜
2020/08/25
3.9K0
Ajax 关闭异步请求
在代码中,因为进行了后台的取值操作,导致有些内容还未加载就执行到了新的地方,所以想着 ajax 的异步关闭来解决。
zucchiniy
2019/10/30
4.1K0
SpringMVC 教程 - 异步请求
在Servlet容器中启动异步支持之后,controller的方法可以通过DeferredResult包装返回值来支持异步处理。例如:
代码拾遗
2018/07/24
2.2K0
取消(中止)异步请求
问题描述:动态获取图片宽、高。由于图片大小不一,导致异步请求返回时间有差异,频繁操作导致渲染结果出现问题。
奋飛
2021/12/30
1.2K0
取消(中止)异步请求
Ajax异步&同步请求
Ajax请求最重要的问题是代码执行的顺序。最长遇到的问题是,我们定义一个变量接收ajax异步请求的返回结果,后续代码使用,然而后续代码在使用时该变量为初始值,始终得不到想要的结果!!!
山河木马
2019/03/05
3.1K0
取消(中止)异步请求
问题描述:动态获取图片宽、高。由于图片大小不一,导致异步请求返回时间有差异,频繁操作导致渲染结果出现问题。
奋飛
2021/09/07
1.1K0
Suspense异步请求组件
通常我们都要一个需求,当组件中的数据还在请求时,展示loading效果,当请求完毕时在展示正常的数据 之前这部分逻辑要我们自己定义,现在可以使用Suspense
切图仔
2022/09/08
6540
Suspense异步请求组件
Ajax 异步&同步请求
XMLHttpRequest 支持同步和异步通信。但是,一般来说,出于性能原因,异步请求应优先于同步请求。同步请求阻止代码的执行,这会导致屏幕上出现“冻结”和无响应的用户体验。
奋飛
2019/08/15
3K0

相似问题

使用索引查询Mongo数组

125

根据查询参数进行过滤

30

Mongo -如何使用排序对过滤器进行索引

11

使用Mongo模板过滤Spring中内部数组列表项的Mongo查询

10

Mongo查询索引

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文