-
C语言 在一个升序排列的数组中插入一个数
2020-05-12 03:22:59编写函数fun,在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。 函数接口定义: void fun(int a[N],int number); 其中 a 和 number 都是用户传入的参数。函数在一个已按升序排列的数组 a 中...在一个升序排列的数组中插入一个数 (10分)
编写函数fun,在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。函数接口定义:
void fun(int a[N],int number);
其中 a 和 number 都是用户传入的参数。函数在一个已按升序排列的数组 a 中插入一个数 number ,插入后,数组元素仍按升序排列
裁判测试程序样例:#include <stdio.h> #define N 11 void fun(int a[N], int number); int main() { int i, number, a[N] = {1, 2, 4, 6, 8, 9, 12, 15, 149, 156}; scanf("%d", &number); printf("The original array:\n"); for (i = 0; i < N - 1; i++) printf("%5d", a[i]); printf("\n"); fun(a, number); printf("The result array:\n"); for (i = 0; i < N; i++) printf("%5d", a[i]); printf("\n"); return 0; }
输入样例:
6
输出样例:
The original array: 1 2 4 6 8 9 12 15 149 156 The result array: 1 2 4 6 6 8 9 12 15 149 156
个人答案如下:
void fun(int a[N], int number) { int m; for (int i = 0; i < N; i++) { if (a[i] >= number) { m = i; for (int q = (N-1); q > i; q--) { a[q] = a[q - 1]; } break; } } a[m] = number; }
原理:
如果输入的数number大于arr[i];
那么从数组arr最后一位arr[N]开始,将arr[N]的值赋给arr[N+1],同时N- -,直到N>i;
最后将number赋值给arr[i]; -
C语言——有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
2019-05-15 23:47:21这里定义一个整型数组,数组名为a,此数组可包含8个整型元素,原有7个元素按升序排列,来为大家进行演示。 在代码编写前,必须进行逻辑分析。这里需考虑三种情况: 输入的值小于或等于a[0] 输入的值位于数组中间...这里定义一个整型数组,数组名为a,此数组可包含8个整型元素,原有7个元素按升序排列,来为大家进行演示。
在代码编写前,必须进行逻辑分析。这里需考虑三种情况:
- 输入的值小于或等于a[0]
- 输入的值位于数组中间(也可以与数组中间的值相等)
- 输入的值大于或等于a[6]
考虑完这些情况,就可以进行代码编写了。
#include<stdio.h> int main() { int a[8]={3,4,8,12,23,25,29},i,j,t; printf("请输入一个数: "); scanf("%d",&t); if(t>=a[6]) //这是输入的值为数组最大值的情况 (包含a[7]等于a[6]的情况) a[7]=t; else { for(i=1;i<8;i++) { if(t<=a[0]) //这是输入的值为数组最小值的情况(包括a[0]等于a[1]的情况) { for(j=7;j>i-1;j--) a[j]=a[j-1]; a[i-1]=t; break; } if((t>a[i-1]&&t<a[i])||t==a[i]) //这是输入的值位于数组中间的情况(包括在数组中间有两个大小一样的值的情况) { for(j=7;j>i-1;j--) a[j]=a[j-1]; a[i]=t; break; } } } for(i=0;i<8;i++) printf("%d ",a[i]); return 0; }
-
C语言 | 将一个数按大小顺序插入数组中
2021-01-17 15:43:47解题思路:假设数组a有n个元素,而且已按升序排列,在插入一个数时按以下方法处理: 如果插入的数num比a数组最后一个数大,则将插入的数放在a数组末尾。 如果插入的数num不比a数组最后一个数大,则将它依次和a[0]a[n...例62:有一个已经排好序的数组,要求C语言实现输入一个数后,按原来排序的规律将它插入数组中。
解题思路:假设数组a有n个元素,而且已按升序排列,在插入一个数时按以下方法处理:
如果插入的数num比a数组最后一个数大,则将插入的数放在a数组末尾。
如果插入的数num不比a数组最后一个数大,则将它依次和a[0]a[n-1]比较,直到出现a[i]>num为止,这时表示a[0]a[i-1]各元素的值比num小,a[i]~a[n-1]各元素的值比num大。
源代码演示:
#include<stdio.h>//头文件 int main()//主函数 { int a[11]={1,4,6,9,13,16,19,28,40,100};//定义整型数组且赋初值 int t1,t2,num,end,i,j;//定义整型变量 printf("原来的输出:\n");//提示语句 for(i=0;i<10;i++)//遍历输出10个数 { printf("%d ",a[i]); } printf("\n");//换行 printf("输入要插入的数:\n");//提示语句 scanf("%d",&num);//键盘录入要插入的数 end=a[9];//将最后一个数赋值给end if(num>end)//先和最后一个数比大小 { a[10]=num; } else { //小于的话,依次比较,直到比插入的数大 for(i=0;i<10;i++) { if(a[i]>num) { t1=a[i]; a[i]=num; for(j=i+1;j<11;j++) { t2=a[j]; a[j]=t1; t1=t2; } //把要插入的数放到数组中 break; } } } printf("插入之后排序:\n");//提示语句 for(i=0;i<11;i++)//遍历输出 { printf("%d ",a[i]); } printf("\n");//换行 return 0;//主函数返回值为0 }
编译运行结果如下:
原来的输出: 1 4 6 9 13 16 19 28 40 100 输入要插入的数: 8 插入之后排序: 1 4 6 8 9 13 16 19 28 40 100 -------------------------------- Process exited after 6.449 seconds with return value 0 请按任意键继续. . .
C语言将一个数按大小顺序插入数组中
更多案例可以go公众号:C语言入门到精通 -
数组程序设计——数组中插入一个数
2020-05-16 22:11:41在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列,已知升序数组{1, 2, 4, 6, 8, 9, 12, 15, 149, 156 }。 输入格式: 直接输入一个整数,没有其它任何附加字符。。 输出格式: 输出插入元素后的...在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列,已知升序数组{1, 2, 4, 6, 8, 9, 12, 15, 149, 156 }。
输入格式:
直接输入一个整数,没有其它任何附加字符。。
输出格式:
输出插入元素后的升序数列,每个数输出占5列。
输入样例:
5
输出样例:
1 2 4 5 6 8 9 12 15 149 156程序
#include<stdio.h> int main(void){ int i,j,x,count; int a[11]={1,2,4,6,8,9,12,15,149,156}; scanf("%d",&x); for(i=0;i<10;i++) if(x<a[i]) break; for(j=10;j>i;j--) a[j]=a[j-1]; a[j]=x; for(i=0;i<11;i++) printf("%5d",a[i]); printf("\n"); return 0; }
结果
-
C语言复习笔记:7-1 数组中插入一个数(插入法思想,数组越界)
2020-06-18 16:51:51在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列,已知升序数组{1, 2, 4, 6, 8, 9, 12, 15, 149, 156 }。 输入格式: 直接输入一个整数,没有其它任何附加字符。。 输出格式: 输出插入元素后的... -
C语言入门题-数组中插入一个数
2020-12-23 19:07:18在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列,已知升序数组{1, 2, 4, 6, 8, 9, 12, 15, 149, 156 }。 输入格式: 直接输入一个整数,没有其它任何附加字符。。 输出格式: 输出插入元素后的... -
数组中插入一个数 (10分)(PTA)
2021-01-13 14:51:03在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列,已知升序数组{1, 2, 4, 6, 8, 9, 12, 15, 149, 156 }。 输入格式 直接输入一个整数,没有其它任何附加字符。。 输出格式 输出插入元素后的... -
7-4 数组中插入一个数 (10分)
2020-06-03 13:43:07在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列,已知升序数组{1, 2, 4, 6, 8, 9, 12, 15, 149, 156 }。 输入格式: 直接输入一个整数,没有其它任何附加字符。。 输出格式: 输出插入元素... -
7-6 数组中插入一个数 (5分)
2020-10-09 21:43:21在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列,已知升序数组{1, 2, 4, 6, 8, 9, 12, 15, 149, 156 }。 输入格式: 直接输入一个整数,没有其它任何附加字符。。 输出格式: 输出插入元素后的... -
C语言指针使用例(指针自加自减运算、数组与指针、字符串与指针)
2020-01-30 11:43:421.在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列 #include<stdio.h> #define N 10 void fun(int *a) { int number,i; printf("Please enter a integer to insert in the array:");... -
在一个数组中查找指定的位置按照逆序输出。
2019-07-30 19:17:45设有一数列,包含10个数,已按升序排好。 现要求编一程序,它能够把从指定位置开始的n个数 按逆序重新排列并输出新的完整数列。 int R_order(int a[10],int n)//定义一个求逆序的函数 { int t; for (int i = 0; i &... -
已排序的数组进行整合再次排序
2019-11-14 16:51:21题目:设有2个长度不等的有序表,各表中元素按升序排列,要求通过两两合并的方法把2个表合并成一个升序表,要求在最坏的情况下比较的次数较少,请给出具体的策略。例如: 表1:1,3,16 表2:2,5,9,11,17,47 解题... -
C语言中复制出整形数组的一部分以及倒序输出数组
2020-12-24 18:57:34/*设有一数列,包含10个数,已按升序排好, 现要求编一程序它能够把从指定位置k开始的n个数 按逆序重新排列并输出新的完整数列。试编程。 (例如;原数列为2,4,6,8,10,12,14,16,18 ,20,若要求把从第4(k=4)... -
数组的查找(线性 和 二 查树)
2019-08-19 18:09:03数组的查找 如果一个数组排好序了,... 假设数组已按升序排列。 二分査找法首先将关键字与数组的中间 元素进行比较。 考虑下面三种情况: • 如果关键字小于中€元素, 只需要在数组的前一半元素中继续査找关键字。 ... -
JS中数组重排序方法
2020-11-28 03:04:18在默认情况下,sort()方法按升序排列数组,sort()方法会调用每个数组项的toString()转型方法,然后比较得到字符串,确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串: var values =... -
面试题 10.03. 搜索旋转数组
2021-01-21 15:50:27请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。 示例1: 输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5 输出: 8(元素5在... -
【python】:搜索旋转数组
2020-10-20 18:02:13请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。 示例1: 输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5 输出: 8(元素5在... -
leetcode面试题 10.03. 搜索旋转数组(二分法)
2020-08-11 18:35:40请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。 示例1: 输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5 输出: 8(元素5在该... -
6-2 函数13:合并数组(二)(50分)
2020-05-09 07:48:11编写函数void fun(int a[],int m,int b[],int n,int c[])将已按升序排好的数组a(共有m个数)和已按降序排好数组b(共有n个数)合并在数组c中,并使c按降序排列,然后用主函数调用。(注:不允许合并后再排序) 函数... -
C语言第六章习题
2018-11-22 17:28:342.编写一个程序,将输入的数据插入到一个已按升序排列的数组中,要求插入后的数组仍然按升列排序。 3.编写一个程序,计算5*5的矩阵的主对角线之和。 4 编写一个程序将两个字符串连接起来。不能使用strcat函数。 5... -
程序员面试金典 - 面试题 10.03. 搜索旋转数组(二分查找)
2020-04-04 17:13:31请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。 示例1: 输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5 输出: 8(元素5在该... -
leetcode面试题 10.03. 搜索旋转数组,普通方法和二分法
2020-10-16 09:45:14请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。 示例1: 输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5 输出: 8(元素5在该... -
JAVA程序设计:搜索旋转数组(面试题 10.03)
2020-10-09 12:02:35请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。 示例1: 输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5 输出: 8(元素5在该... -
Sort()函数的多种用法
2021-01-21 11:28:32在默认情况下, sort() 方法按升序排列数组项。为了实现排序, sort() 方法会调用每个数组项的 toString() 转型方法,然后比较得到的字符串,已确定如何排序。如下: var values = [orange,apple,banana]; values.... -
折半查找法
2016-03-08 10:45:151. 问题:假设现在有一个有序的数组array(已按升序排列好的),又有一个数num,现在查找这个数num是否在数组array中。 问题分析:假设num在数组array中,那么怎么进行折半查找呢? 1)先将num和数组中间的那个数... -
二分查找方法 leetcode题
2020-12-08 20:02:50请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。 示例1: 输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5 输出: 8(元素5... -
选择排序 Selection Sort
2019-03-27 19:14:43假设要将待排序的数组按升序排列,已排序的部分在左边,大小每次加一,待排序的部分找到最小的元素和该部分最左边的元素交换位置,然后待排序的部分大小减一,直到为一停止,因为一个元素是有序的。 ... -
java sort的用法_[Java教程]sort()的多种用法
2021-02-27 12:12:50一、默认情况在默认情况下,sort()方法按升序排列数组项。为了实现排序,sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,已确定如何排序。如下:1 var values = ["orange","apple",... -
《算法设计与分析实用教程》全套教学课件.ppt
2020-10-10 22:38:031 首先对给定的n个权值作升序排列 2 设置n-1次操作的k1n-1循环在第k次操作中由两个最小权值叶结点生成一个新结点 x=w[2*k-1]; y=w[2*k]; w[n+k]=x+y; lc[n+k]=x; rc[n+k]=y; 3 新结点参与排序为下一次操作做准备 ... -
sort()的多种用法
2016-03-20 11:40:00在默认情况下,sort()方法按升序排列数组项。为了实现排序,sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,已确定如何排序。如下: 1 var values = ["orange","apple","banana"]; 2 ...
-
【枚举与countDownLatch的应用】
-
浙江科技大学《材料力学》历年多套期末考试试卷(含答案).pdf
-
php 使用__sleep和__wakeup方法序列化对象
-
FFmpeg4.3系列之16:WebRTC之小白入门与视频聊天的实战
-
hibernate5.0.2Set.rar
-
区块链知识普及
-
武汉理工大学《物理化学》期末考试试卷(含答案).pdf
-
西南科技大学《电路分析A》期末考试试卷(含答案).pdf
-
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
-
IDE---Intellij 创建maven工程没有提示SpringConfig的xml文件
-
SpringBoot整合Redis
-
燕山大学《线性代数》期末考试(含答案).pdf
-
西南科技大学《大物》多套期末复习试卷含答案.pdf
-
kmalloc最大能申请多少内存?
-
西南科技大学《高等数学B2》期末考试试卷(含答案).pdf
-
6、数据分析matplotlib
-
物联网基础篇:快速玩转MQTT
-
C51单片机学习日记:数码管
-
卡车拉货
-
牛牛量化策略交易