c语言:数组插入处理

规定输入9个元素,排序后,再输入一个数要求按原来排序的规律将它插入数组中。

 初始化数组函数:

void	assign_value_to_array(int val[])//数组赋值
{
	int star;//数组开始位
	
	printf("请输入%d个数:",num);
	
	for(star=0;star<num;star++)
	{
		scanf("%d",&val[star]);
	}
	
	array_sorting(val);//数组排序
}

 对数组值进行排序:

void array_sorting(int val[])
{
	int flag;//数组当前位置
	int latter;//后一位
	int temp;
	
	for(flag=0;flag<num-1;flag++)//遍历数组
	{
		//后一位与前一位比较
		for(latter=flag+1;latter<num;latter++)
		{
			if(val[latter]<val[flag])
			{
				temp=val[latter];
				val[latter]=val[flag];
				val[flag]=temp;
			}
			
		}
	}
	
	printf("排序后字符串:");
	display(val);//显示字符串
	insert_data(val);//插入数值	
}

打印数组元素:

void display(int val[])
{
	int i;
	for(i=0;i<num+1;i++)//遍历数组
	{
		printf("%d ",val[i]);//逐个显示	
	}
	printf("\n");
}

 插入一个值,并按顺序打印出来:

void insert_data(int val[])
{
	int input;
	int ins_point;
	int ins_aftter;
	
	printf("请输入一个数值:");
	scanf("%d",&input);
	
	for(ins_point=0;ins_point<num;ins_point++)
	{
		if(val[ins_point]>input)
		{
			break;//得到插入点+1
			//break:跳出for还会执行最后一句ins_point++
		}
	}
	
	for(ins_aftter=num-1;ins_aftter>ins_point-1;ins_aftter--)//插入数据,倒序传值,否则会导致后面的值都一致
	{
		val[ins_aftter+1]=val[ins_aftter];
	}
	
	val[ins_point]=input;
	
	printf("插入数值后数组:");
	display(val);//显示字符串
}

运行结果:

 

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值