有一个有序数组,要求将一个新输入的数插入到数组中并保证插入新数后,数组仍有序。

因为数组在初始条件下是有序的,而题目要求插入新数后数组仍有序。因此,首先应该在数组中找到插入位置,然后将该位置原有的数以及该位置后面的数都依次后移一个位置,为新插入的数值空出一个位置。

#include<stdio.h>

int main()

{

int a[11] = {2, 4, 8, 15, 20, 36, 49, 51, 78, 96};

int temp1, temp2, number, end, i, j;

printf("The original arry is:\n");

for(i = 0; i < 10; i++)

printf("%5d", a[i]);

printf("\n");

printf("Please insert a new number:");

scanf("%d", number);

end = a[9];

if(number > end)

a[10] = number;

else

{

for(i = 0; i < 10; i++)

{

if(a[i] > number)

{

temp1 = a[i];

a[i] = number;

for(j=i+1; j<11; j++)

{

temp2 = a[j];

a[j] = temp1;

temp1 = temp2;

}

break;

}

}

}

for(i=0; i<11; i++)

printf("%6d", a[i]);

printf("\n");

}

时间: 2024-10-17 09:49:02

有一个有序数组,要求将一个新输入的数插入到数组中并保证插入新数后,数组仍有序。的相关文章

DXF 最简单的一个文件生成两个直线一条直线放入BLOCKS中通过INSERT插入 (2)

把#注解删除 0 SECTION 2 HEADER 9 $ACADVER 1 AC1009 9 $INSBASE 10 0.000000 20 0.000000 30 0.000000 9 $EXTMIN 10 0.000000 20 0.000000 9 $EXTMAX 10 6.000000 20 5.200000 0 ENDSEC 0 SECTION 2 TABLES 0 ENDSEC 0 SECTION 2 BLOCKS 0 BLOCK # 从属于BLOCKS 8 0 2 HELLOWO

【C语言】求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素

//求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素 #include <stdio.h> #include <string.h> int find_min(int arr[],int len) { int i = 0; for (i = 1; i < len; i++) { if (arr[i] < arr[0]) return arr[i]; } return arr[0]; } int main() { int i; int arr1[] =

如何将一个数组中的元素插入另一个数组

如何将一个数组中的元素插入另一个数组:本章节直接给出一段将一个数组中元素插入另一个数组中的代码实例,直接套用就可以了.代码如下: var first = ['a','b','c']; var second = ['1','2','3']; var index = 1; second.unshift(index, 0); Array.prototype.splice.apply(first, second); 原文地址是:http://www.softwhy.com/forum.php?mod=v

17、把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1. NOTE:给出的所有元素都大于0,若数组大小为0,请返回0. eg: 输入 3 4 5 1 2 输出 1 思路:用二分法查找最小元素 三种情况: (1)rotateArray[mid] >rotateArray[high]: like:[x,x,x,6,x,x,2],此时最小数字一

ios 一个正则表达式测试(只可输入中文、字母和数字)

分类: iOS(390) 作者同类文章X 目录(?)[+] 一NSString自带的正则查找替换方法 二使用 RegexKitLite 三使用 RegexKitframework 框架 四常用ICU正则匹配模式 文本文件 Text Files 网络与URL相关 Network and URL 五贪婪匹配与最小匹配 六正则表达式书写格式 javascript正则表达式使用详解 在项目中碰到了正则表达式的运用,正则还是非常强大的,不管什么编程语言,基本上都可以用到.之前在用java时特别是对用户名或

面试题之java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况

题目:10. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”. 一.需要分析 1.输入为一个字符串和字节数,输出为按字节截取的字符串-------------->按照字节[byte]截取操作字符串,先将String转换成byte类型 .2.汉字不可以截半----------------------------------

NET Framework 4.5新特性 (三)64位平台支持大于2 GB大小的数组

64位平台.NET Framework数组限制不能超过2GB大小.这种限制对于需要使用到大型矩阵和向量计算的工作人员来说,是一个非常大问题. 无论RAM容量有多大有多少,一旦你使用大型矩阵和向量计算工作的时候,经常会抛出一个System.OutOfMemoryException异常,如下图所示: 参考程序 class Program { private static void Main(string[] args) { int arrysize = 150000000; var large=ne

编写一个程序把较长的输入行“折”成短一些的两行或多行

/*******************************************编写一个程序把较长的输入行"折"成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格符之后.要保证程序能够智能地处理输入行很长以及在指定的列前没有空格或制表符的情况.*************************************************/#include <stdio.h>#define MAXCOL 10#define TABINC 8cha

输入字符串取出字符串中的连续数字放入单独数组

public class ShowsNum { public Map getNums(String str){ HashMap<Integer,String> map=new HashMap<Integer,String>(); char [] chnum=str.toCharArray(); StringBuffer strbuffer=new StringBuffer(); int des=1; for(int i=0;i<chnum.length;i++){ //当前字