C语言经典题目——将一个数插入已排序好的数组中
<1>题目介绍
有一个已排好序的数组,要求输入一个数后,按原来的规律将他插入数组中,例如将3插入
1 ,2 ,4 ,7 ,8, 9 ,10 ,11, 13, 100中,得到1 ,2 ,3,4 ,7 ,8, 9 ,10 ,11, 13, 100
<2>思路分析
- 将输入的数字一一和数组中的元素对比
- 如果没有比他大的,就将他放在数组的最后一个位置
- 如果他在数组中某两个数之间,就将大于它的数全部向后移动一位
<3>代码实现
int main()
{int arr[11] = { 1 ,2 ,4 ,7 ,8, 9 ,10 ,11, 13, 100 };int input = 0;scanf("%d",&input);int i,j;for (i = 0; i < 10; i++){if (input >= arr[9]){arr[10] = input;}else {if (input<=arr[i]) {int tmp1 = arr[i]; arr[i] = input; for (j = i + 1; j < 11; j++){int tmp2 = arr[j]; arr[j] = tmp1; tmp1 = tmp2; }break;}}}for (i = 0; i < 11; i++){printf("%d ",arr[i]);}return 0;
}
上面代码的核心部分在于下面
if (input<=arr[i]) //假设这里的input = 3,则i = 2
{int tmp1 = arr[i]; //记录tmp1 = arr[2] = 4arr[i] = input; //让arr[2] = input = 3for (j = i + 1; j < 11; j++){int tmp2 = arr[j]; //记录tmp2 = arr[3] = 7arr[j] = tmp1; //让arr[3] = tmp1 = arr[2] = 4tmp1 = tmp2; //让tmp1 = tmp2 = arr[3] = 7}break;
}
我将input = 3作为演示过程写出来了,后面只需要执行完for循环就能将整个插入过程执行完毕
<4>结果展示
C语言经典题目——将一个数插入已排序好的数组中相关推荐
- c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解
C语言 经典题目螺旋矩阵 实例详解 C语言 经典题目螺旋矩阵 //N阶螺旋矩阵 #include #include int main() { int N,i,j,n,num=1; int a[10][ ...
- C语言经典题目(一)
分享之前和大家分享一本书叫做<厚黑学>,这本书可以了解一下社会现实,但是看这本书的时候切记,不可迷失自己.扉页的第一段话和大家分享一下:我自读书识字以来,就想为英雄豪杰,求之四书五经,茫无 ...
- c语言插入特定的字符串,C语言实现:将一个字符串插入到另一个字符串的指定位置...
C语言实现:将一个字符串插入到另一个字符串的指定位置 发布时间:2018-08-22 13:23, 浏览次数:1672 示例一: char *insert(char *s1, char *s2, in ...
- 《程序员代码面试指南》第七章 位运算 在其他数都出现k 次的数组中找到只出现一次的数...
题目 在其他数都出现k 次的数组中找到只出现一次的数 java 代码 package com.lizhouwei.chapter7;/*** @Description: 在其他数都出现k 次的数组中找 ...
- C语言经典例19-完数
目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. 因子:假如整 ...
- C语言经典题目(二)
失去兴趣的人终将是去奋斗的价值观. --本人 大家好,这一篇文章和大家分享一下C语言经典习题第二章,这些思想挺重要的,是打江山的基础.值得大家看一看. 一.判断一个数是几位数 用户输入一个数,然后用代 ...
- 如何用c语言word文件页数,如何快速查看word文档中字数、页数等信息?()
相关题目与解析 如何快速查看word文档中应用了标题样式的段落文本 在Word2003中,使用"字数统计"功能不能够完成().A.脚注和尾注的个数统计B.整篇文档的字数统 如何快速 ...
- C语言经典100题——用选择法排序
<什么是选择法> 选择排序法是一种不稳定的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大) ...
- C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。
/*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数.如果不在数组中,打印"not found".*/#include<stdio ...
最新文章
- swoole安装异步reids
- linux一共有多少级别,简述linux的几个运行级别及其相应的含义。
- c2065 未声明的标识符 解决ok
- mysql之触发器详解_学习笔记之MySQL触发器详解
- 二值图像的距离变换研究
- oracle 如果存在不创建表,oracle – 如果表不存在则创建表,并在创建后输入一行...
- 怎么查看linux服务器有cpu
- 前端学习(3256):react中添加todolist
- 启明星会议室预定系统 helpdesk系统等 登陆失败的问题与解决方法
- “工业4.0”下的可视化工厂建设方案 1
- 基于vue(element ui) + ssm + shiro 的权限框架
- ztree 后台异步加载_ztree 异步加载示例
- excel撤销工作保护(忘记密码)
- java单循环赛制程序_单循环比赛的固定轮转编排法与贝格尔编排法
- Python概念-Item系列(林海峰教的)
- Gym 100818F Irrational Roots (数学)
- Flowable源码注释(三十二)任务超时作业
- 数字安全证书(CA证书)介绍
- java bt下载_bt: Java种子下载程序
- 教你怎样混社会[转]