题解 | #有序序列插入一个数#

有序序列插入一个数

http://www.nowcoder.com/practice/74486aec6fe14d44b509efabf265ee66

#include<stdio.h>
int main()
{
	int arr[52] = { 0 };//  思想    前后都有个0  如  N=5      0 ....... 0   这样避免插入在开头或结尾
	int i = 0;
	int N = 0;
	scanf("%d", &N);//一个N个的有序数列
	for (i = 1; i <= N; i++)
	{
		scanf("%d", &arr[i]);//遍历
	}
	int a;
	scanf("%d",&a);//插入的数
	for (i = 0; i <= N+1; i++)//从0开始是为了方便从开头插入,N+1是为了方便插入最后一位(因为要插到i-1)
	{
		if (a < arr[i]||i==N+1)//包括开头和结尾;  
		{
			for (int b = 0; b < i; b++) { //让前面的前移 
				arr[b] = arr[b + 1];
			}
			arr[i-1] = a;//a等于i-1位   因为第i位大于a
			break;
		}
	}
	for (i = 0; i <= N; i++) {
		printf("%d ", arr[i]);
	}
	return 0;
}
全部评论

相关推荐

03-31 14:46
已编辑
门头沟学院 Web前端
励志成为双港第一ja...:这其实很正常,离的太远了,他认为你不会来,就为了混个面试,而且成本很高,实习生都优先选本地高校。吃了地域的亏,所有很多时候地域可能比院校层次更重要。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务