规定输入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);//显示字符串
}
运行结果: