首页 > 编程语言 >编写程序,将用户输入的整数X插入到一个升序排列的数组(int a[10]={1, 3,6, 9,15, 28,35,53,63);要求插入,此数组依然有序)

编写程序,将用户输入的整数X插入到一个升序排列的数组(int a[10]={1, 3,6, 9,15, 28,35,53,63);要求插入,此数组依然有序)

时间:2024-11-05 23:16:43浏览次数:3  
标签:index arr int 53 插入 63 数组 升序

#include <stdio.h>

int main()
{
	int arr[10] = { 1,3,6,9,15,28,35,53,63 };
	int x=0;//定义这个输入的数
	int i=0 ;
	int index = 0;
	scanf_s("%d", &x);
	if (x<= arr[0])
		index = 0;//当x小于最小数时,index等于0
	else if (x>= arr[8])
		index = 9;//当x大于等于最大数时,index等于9
	else
	{

		for (i = 0; i < 9; i++)
		{
			if (x>= arr[i] && x<= arr[i + 1])//如果x是数组两个数中间的数,则i+1是放入数组对应的位子
			{
				index = i + 1;
				break;
			}
		}
	}
	for (i = 8; i >= index; i--)//从index开始到arr【8】,倒序逐个将数组元素向后移动一位
	{
		arr[i + 1] = arr[i];
	}
	arr[index] = x;//最后将X放入数组index处
	for (i = 0; i <=9; i++)//循环输出数组所有10个元素
	{
		printf("%d\t", arr[i]);

	}
	return 0;
}

输入X一个整数4 

运行结果:

标签:index,arr,int,53,插入,63,数组,升序
From: https://blog.csdn.net/doki_123/article/details/143497177

相关文章

  • C语言字符数组 java封装
    1.intmain(void){   inta[5]={1,3,5,7,9};   charstrl[5]={'A','B','C','D','E'};   charstr2[5]="ABCD";//不能是ABCDE,最后还有\0   inti=0;   //for(i=0;i<5;i++)   //{ ......
  • Leecode热题100-4.寻找两个正序数组的中位数
    给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log(m+n)) 。示例1:输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例2:输入:nums1=[......
  • 蓝桥杯排序算法之low B三人组——冒泡,插入,选择
    目录一、题目二、分析三、代码一、题目分别用冒泡,插入,选择对列表li=[3,2,4,5,1,8,6,9,7]进行排序二、分析冒泡排序:它重复地走访要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经......
  • 蓝桥杯每日一练--搜索旋转排序数组
    目录一、题目二、分析三、代码一、题目整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0<=k<nums.length)上进行了 旋转,使数组变为 [nums[k],nums[k+1],...,nums[n-1],nums[0],nums[1],...,nums[k-1]](......
  • 用pandas 读取excel文件,存到数组中,调整数组的值
    importpandasaspdimportpymysqlfromdatetimeimportdatetime#定义一个自增的全局变量counter=1defincrement():globalcountercounter+=1returncounter#调用函数并打印结果#print(get_current_date())defget_array():#读取Excel......
  • 洛谷题单指南-二叉堆与树状数组-P1801 黑匣子
    原题链接:https://www.luogu.com.cn/problem/P1801题意解读:动态维护一组序列,并随时可以求第k小的值,每次求第k小的顺序是递增的,比如第一次取第1小,然后是第2小,以此类推。解题思路:对于求第k小的问题,已经介绍过几种方案:1、快选算法,每次查询时间复杂度logn,传送门:https://www.cnblogs......
  • C++——输入一个字符串,内有数字和非数字字符,如a123x456_ 17960?302tab5876将其中连续
    没注释的源代码#include<iostream>#include<stdio.h>usingnamespacestd;intmain(){  charstr[50],*pstr;  inti,j,k,m,e10,digit,ndigit,a[10],*pa;  cout<<"pleaseinputstring:"<<endl;  gets(str);  pstr=&str[......
  • 实验四 C语言数组应用编程
    实验四C语言数组应用编程实验任务1——内存地址#include<stdio.h>#defineN4#defineM2voidtest1(){ intx[N]={1,9,8,4}; inti; //输出数组x占用的内存字节数 printf("sizeof(x)=%d\n",sizeof(x)); //输出每个元素的地址、值 for(i=0;i<N;+......
  • 洛谷题单指南-二叉堆与树状数组-P3378 【模板】堆
    原题链接:https://www.luogu.com.cn/problem/P3378题意解读:实现二叉堆。解题思路:二叉堆本质上一棵完全二叉树,根节点称为堆顶,根据特性不同分为有两种:大根堆:所有父节点的值大于子节点,根节点最大小根堆:所有父节点的值小于子节点,根节点最小主要作用:动态维护序列,并快速找到最大/最......
  • 算法设计2——数组元素循环右移
    问题描述:有一个数组a包含n(n>1)个整数元素,设计一个尽可能高效的算法将数组a中的后面k个元素循环右移(k<=n),其中n是数组长度,0<=k<=n。例如:a=(1,2,3,4,5),k=3,结果:a=(3,4,5,1,2)思路:理解问题:将数组 a中的最后 k个元素移动到数组的前面,同时保持剩余元素的顺序不变。解决问题......