E45.【C语言】练习:输入10个整数查找找并打印不相同的数字及个数

1.题目

输入10个整数查找找并打印不相同的数字及个数

输入示例
 

数组元素个数:10
20 50 30 10 60 90 70 30 10 20

输出示例

20 50 30 10 60 90 70 
一共7个  

2.初始代码

和E27.【C语言】练习:在一个整型数组中,只有一个数字出现一次,其他数组都是成对出现的,请找出那个只出现一次的数字文章有点不一样

三重循环

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{int arr[1000] = { 0 };int num = 0;printf("数组元素个数:");scanf("%d", &num);for (int i = 0; i < num; i++){scanf("%d", &arr[i]);}for (int i = 0; i < num; i++){for (int j = i + 1; j < num; j++)if (arr[i] == arr[j]){for (int k = j; k < num; k++){arr[k] = arr[k + 1];}num--;}}for (int i = 0; i < num; i++){printf("%d ", arr[i]);}printf("\n一共%d个", num);return 0;
}

运行结果

3.封装为函数

其实画圈处可以封装为一个自定义函数move

            if (arr[i] == arr[j]){move(......);}

写法1:传arr

改变数组组元素(int)要传数字元素的地址(int*),因此可以传arr

            if (arr[i] == arr[j]){move(arr,j,num);}
void move(int* arr,int begin,int end)
{for (int i = beign; i < end; i++){arr[k] = arr[k+1];}
}

写法2:传&arr[j]

取下标为j元素的地址&arr[j]

            if (arr[i] == arr[j]){move(&arr[j],num-j,&num);}
void (int* arr,int n,int* num)
{while (n--){*arr=*(arr+1);arr++;}(*num)--;
}

4.代码查错

运行结果看起来好像没问题

但下方输出结果错误

10 20 10 20 20-->10 20 20 20-->10 20 20

发现20没有完全删除 添加if (arr[j]==arr[j-1])判断即可

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{int arr[1000] = { 0 };int num = 0;printf("数组元素个数:");scanf("%d", &num);for (int i = 0; i < num; i++){scanf("%d", &arr[i]);}for (int i = 0; i < num; i++){for (int j = i + 1; j < num; j++){if (arr[i] == arr[j]){for (int k = j; k < num; k++){arr[k] = arr[k + 1];}num--;}if (arr[j]==arr[j-1]){j--;for (int k = j; k < num; k++){arr[k] = arr[k + 1];}num--;}}}for (int i = 0; i < num; i++){printf("%d ", arr[i]);}printf("\n一共%d个", num);return 0;
}

 运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/20041.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

播放器开发之ffmpeg 硬件解码方案

硬件编解码的概念 硬件编解码是⾮CPU通过烧写运⾏视频加速功能对⾼清视频流进⾏编解码&#xff0c;其中⾮CPU可包括GPU、FPGA或者 ASIC等独⽴硬件模块&#xff0c;把CPU⾼使⽤率的视频解码⼯作从CPU⾥分离出来&#xff0c;降低CPU的使⽤负荷&#xff0c;使得平台能 ⾼效且流畅…

DDD领域应用理论实践分析回顾

目录 一、DDD的重要性 &#xff08;一&#xff09;拥抱互联网黑话&#xff08;抓痛点、谈愿景、搞方法论&#xff09; &#xff08;二&#xff09;DDD真的重要吗&#xff1f; 二、领域驱动设计DDD在B端营销系统的实践 &#xff08;一&#xff09;设计落地步骤 &#xff0…

读懂top后显示内容

第一行&#xff1a;系统信息 top - 06:33:12 up 42 min, 1 user, load average: 0.04, 0.02, 0.00 06:33:12&#xff1a;当前时间。up 42 min&#xff1a;系统已经启动了 42 分钟。1 user&#xff1a;当前有 1 个用户登录。load average: 0.04, 0.02, 0.00&#xff1a;这三个…

2024年第十四届APMCM亚太杯数学建模A题B题C题思路+代码解析汇总

2024年第十四届亚太地区大学生数学建模竞赛 开赛后第一时间更新解题思路代码参考文章&#xff01; 点击链接加入群聊【2024亚太杯数学建模竞赛助攻】&#xff1a;http://qm.qq.com/cgi-bin/qm/qr?_wv1027&ksIq03p_73AYtWuH-bNy6VGD2652Um6y2&authKeyZsYwQzbxX0BKPyH…

Tomcat 如何管理 Session

Tomcat 如何管理 Session 我们知道&#xff0c;Tomcat 中每一个 Context 容器对应一个 Web 应用&#xff0c;而 Web 应用之间的 Session 应该是独立的&#xff0c;因此 Session 的管理肯定是 Context 级的&#xff0c;也就是一个 Context 一定关联多个 Session。 Tomcat 中主…

【ArcGISPro】使用AI模型提取要素-提取车辆(目标识别)

示例数据下载 栅格数据从网上随便找一个带有车辆的栅格数据 f094a6b1e205cd4d30a2e0f816f0c6af.jpg (1200799) (588ku.com) 添加数据

SpringBoot3_Web开发

4. 内容协商 一套系统适配多端数据返回 移动端&#xff1a;返回JSON数据第三方&#xff1a;返回XMLIoT&#xff1a;返回自定义协议数据 1. 默认规则 1. SpringBoot 多端内容适配 基于请求头内容协商 【默认】 客户端向服务端发送请求&#xff0c;携带HTTP标准的 Accept 请求…

Mysql篇-语句执行计划详解(explain)

概述 使用 explain 输出 SELECT 语句执行的详细信息&#xff0c;包括以下信息&#xff1a; 表的加载顺序 sql 的查询类型 可能用到哪些索引&#xff0c;实际上用到哪些索引 读取的行数 Explain 执行计划包含字段信息如下&#xff1a;分别是 id、select_type、table、partit…

.net 7.0 解决“The keyword field is required”的问题

在 .net 3.1项目的时候&#xff0c;使用 keyword 做 API 接口的模糊匹配&#xff0c;能够传入keyword “” 进行整表查询。但当我在 .net 7.0 项目中这么使用的时候&#xff0c;传入 keyword 不为空时能够进行匹配&#xff0c;但是当我传入 keyword “” 的时候就报错 “The …

高效语言模型 Parler-TTS 上线,一键完成文本转语音

Parler-TTS 是一种轻量级的文本转语音 (TTS) 模型&#xff0c;可以生成具有给定说话者风格的高质量、自然语音&#xff0c;自由度及创新性非常高&#xff0c;并且可以通过 Prompt 控制说话者的性别、音色、语调以及所处的场景&#xff08;室内、室外、马路上、音乐厅等&#xf…

网络安全与防范

1.重要性 随着互联网的发达&#xff0c;各种WEB应用也变得越来越复杂&#xff0c;满足了用户的各种需求&#xff0c;但是随之而来的就是各种网络安全的问题。了解常见的前端攻击形式和保护我们的网站不受攻击是我们每个优秀fronter必备的技能。 2.分类 XSS攻击CSRF攻击网络劫…

JavaWeb——Maven、web入门

1. maven maven是一款用于管理和构建Java项目的工具&#xff0c;它基于项目对象模型&#xff08;POM—Project Object Model&#xff09;的概念&#xff0c;通过一小段描述信息来管理项目的构建。 1.1. 作用 1.1.1. 依赖管理 方便快捷的管理项目依赖的资源&#xff08;jar包…

【前端学习笔记】Javascript学习二(运算符、数组、函数)

一、运算符 运算符&#xff08;operator&#xff09;也被称为操作符&#xff0c;是用于实现赋值、比较和执行算数运算等功能的符号。 JavaScript中常用的运算符有&#xff1a; 算数运算符、递增和递减运算符、比较运算符、逻辑运算符、赋值运算符 算数运算符&#xff1a; 、-…

【开源免费】基于Vue和SpringBoot的智慧食堂系统(附论文)

本文项目编号 T 629 &#xff0c;文末自助获取源码 \color{red}{T629&#xff0c;文末自助获取源码} T629&#xff0c;文末自助获取源码 随着Internet的发展&#xff0c;人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化&#xff0c;网络化和电子化。网…

基因组之全局互作热图可视化

引言 PlotHiC 是一个专为 Hi-C 数据可视化分析而设计的 Python 包。Hi-C 技术是一种能够检测染色体三维结构的实验方法&#xff0c;它能揭示 DNA 在细胞核内的三维组织结构。为了更好地展示和解释这些复杂的数据&#xff0c;PlotHiC[1] 可以帮助用户方便地绘制Hi-C 数据的热图。…

道本科技智慧合同管理平台,采用数字化技术帮助企业建立全生命周期的合同管理模式。

作为专业的企业合同管理平台建设专家&#xff0c;我们拥有丰富的实施经验和专业技术团队&#xff0c;致力于帮助企业搭建高效、安全的合同管理系统。我们的解决方案涵盖合同起草、审批、存储、分析和报告等多个环节&#xff0c;能够满足不同企业的多样化需求。 选择我们&#…

AmazonS3集成minio实现https访问

最近系统全面升级到https&#xff0c;之前AmazonS3大文件分片上传直接使用http://ip:9000访问minio的方式已然行不通&#xff0c;https服务器访问http资源会报Mixed Content混合内容错误。 一般有两种解决方案&#xff0c;一是升级minio服务&#xff0c;配置ssl证书&#xff0c…

QGIS使用WMS图层

目录 参考链接 参考链接 [1] 使用 WMS 数据 &#xff08;QGIS3&#xff09; 2023.8&#xff1b;

华为防火墙技术基本概念学习笔记

1.防火墙概述 1.1防火墙与交换机、路由器对比 路由器与交换机的本质是转发&#xff0c;防火墙的本质是控制。 防火墙与路由器、交换机是有区别的。路由器用来连接不同的网络&#xff0c;通过路由协议保证互联互通&#xff0c;确保将报文转发到目的地;交换机则通常用来组建局域…

面向FWA市场!移远通信高性能5G-A模组RG650V-NA通过北美两大重要运营商认证

近日&#xff0c;全球领先的物联网整体解决方案供应商移远通信宣布&#xff0c;其旗下符合3GPP R17标准的新一代5G-A模组RG650V-NA成功通过了北美两家重要运营商认证。凭借高速度、大容量、低延迟、高可靠等优势&#xff0c;该模组可满足CPE、家庭/企业网关、移动热点、高清视频…