首页 > 编程语言 >C语言编程练习_查找数组中不重复的数字

C语言编程练习_查找数组中不重复的数字

时间:2023-03-31 14:58:02浏览次数:31  
标签:arr return int 编程 ret C语言 len 查找 result

题目描述:给定一个整形数组空间arr,数据中包含两个一样的数字若干,只有一个数字是单独一个。设计一个函数把这个出现一次的数字返回出来。

 

解决方案一:

穷举法:假设arr数组中的每个元素都是重复的。也可能是不重复的(效率差)

#include<stdio.h>
int fun1(int arr[], int len){     int result;     int count;     int i, j;     for(i = 0; i < len; i++){         result = arr[i];         count = 0;         for(j = 0; j < len; j++){             if(result == arr[j]){                 count++;             }             if(count == 2){                 break;             }         }         if(count == 1){             return result;         }     }     return -1; }
int main(){     int arr[] = {1, 2, 1, 3, 8, 3, 8, 2, 6};     int ret;     ret = fun1(arr, sizeof(arr) / sizeof(arr[0]));     printf("the result is : %d\n", ret);     return 0; }   解决方法二:  使用异或的方法。相同值异或所得值为0,0与单个值异或的值为该值。适用于两两进行匹配,而单独多出一个,降所有结果进行异或则可找出该值。 int fun2(int arr[], int len){     int result = arr[0];     int i;     for(i = 1; i < len; i++){         result = result ^ arr[i];     }     return result; }
int main(){     int arr[] = {1, 2, 1, 3, 8, 3, 8, 2, 6};     int ret;     ret = fun2(arr, sizeof(arr) / sizeof(arr[0]));     printf("the result is : %d\n", ret);     return 0; }

标签:arr,return,int,编程,ret,C语言,len,查找,result
From: https://www.cnblogs.com/ccxccxccx/p/17276246.html

相关文章

  • c++ 多线程编程std::thread, std::shared_mutex, std::unique_lock
    在C++11新标准中,可以简单通过使用thread库,来管理多线程,使用时需要#include<thread>头文件。简单用例如下:1std::thread(Simple_func);2std::threadt(Simple_func);3t.detach();第一行是直接启动一个新线程来执行Simple_func函数,而第二行先声明一个线程函数t(返回类型为......
  • C语言 特殊例子及说明
    #include<stdio.h>main(){charc;c=0345;printf("%d\n",c);}16进制:每个16进制转成4位2进制,分组计算8进制345:转2进制,每个8进制转成3位2进制2进制:011100101229:1286432168421补码:11......
  • Twitter营销教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介IT宝库整理的推特营销入门教程-从基本到高级概念简单步骤的Twitter营销,包括概述,帐户和个人资料,追随者,普通推文,图像和视频帖子,可嵌入推文,Hashtags,转发,列表,有用功能,Twitter搜索,Twitter卡,定义策略,声誉管理,管理转换,自动化,本地分析,HootSuite。教程目录Twitter营销教程Tw......
  • C语言以结构体的方式写入eeprom数据
    unsignedcharmin_change0=0,//要保存的变量值第一组,每一次改变都会保存unsignedcharmin_change_backup0=0;//该变量为中间变量,用于与min_change做对比,下同unsignedcharmin_change1=0,//要保存的变量值第二组,每一次改变都会保存unsignedcharmin_change_b......
  • unity学习——c#初级编程
    1.作为行为组件的脚本首先新建一个cube立方体  然后新建一个c#脚本,脚本用来实现立方体cube的三种颜色变化(按键实现)  脚本代码如下:usingUnityEngine;usingSystem.Collections;publicclasscolor:MonoBehaviour{voidUpdate(){if(Input.GetKeyD......
  • 文件-C语言
    格式化的输入输出:printf%[flag][width][.prec][hil]typescanf%[flag]typeprintf:%[flag][width][.prec][hil]typeFlag含义-左对齐+在前面放+或-(space)正数留空00填充width或prec含义number最小字符数*下一个参数是字符数.numbe......
  • 学习C语言第三天
    前一天学习的数组,接下来要学习的是二维数组和函数。一.二维数组1.1引入场景有三个小队,每个小队都有10个人,对小队进行一些操作。1.2二维数组的定义和表达形式二位数组通常称为矩阵类型说明符数组名[常量表达式][常量表达式]例:intarr[3][3];//一个......
  • 3.30App端地铁查询 设计思路 源程序代码、运行结果截图、编程总结分析。
    App端地铁查询设计思路源程序代码、运行结果截图、编程总结分析。 关于地铁查询App的设计思路。设计思路:我们沿用pc端的数据库设计结构,减少了我们的工作量。查询方法以及设计思路都很javaweb设计的大同小异。在设计中我们遇到的主要问题就是安卓Studio中的mysql数据库的......
  • 网络编程 并发
    目录网络编程并发软件开发架构OSI七层协议TCP协议UDP协议SOCKED编程基于TCP协议的套接字编程基于UDP协议的套接字编程粘包现象解决黏包进程概念并行和并发的概念同步异步阻塞非阻塞如何开启进程Process类的参数process中的方法查看进程号pid如何开启多线程基于TCP的高并发程序进......
  • App端地铁查询 设计思路 源程序代码、运行结果截图、编程总结分析。
    关于地铁查询App的设计思路。设计思路:我们沿用pc端的数据库设计结构,减少了我们的工作量。查询方法以及设计思路都很javaweb设计的大同小异。在设计中我们遇到的主要问题就是安卓Studio中的mysql数据库的连接。(查询数据库时主线程与子线程冲突的问题解决)查询大致分为三大类:一:线......