学习目标:
掌握插入数值后数组元素下标加1的方法
学习内容:
定义一个数组,输入数值,留下一个插入的值的空位,将新输入的值按照原来数组的排序规律插入到数组中,插入后的数值元素的下标依次加1。
代码如下:
#include<stdio.h>
int main()
{
int a[11],x,i,j,temp;//定义一个a数组
printf("请输入10个数:\n");
for (i = 0; i < 10; i++)//输入前10个数,为后来插入的数留下位置
{
scanf("%d", &a[i]);
}
for (i = 0; i < 10; i++) //冒泡排序,降序从高到低
{
for (j = 0; j < 9 - i; j++)
{
if (a[j] < a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
printf("排序好的10个数为:\n");
for (i = 0; i < 10; i++)
{
printf("%d ", a[i]);
}
printf("\n");
printf("请输入第十一个数:\n");//因为是个逆序排序,所以就是找比前一个小,比后一个大的时候,x就应该插入在这2者中
scanf("%d", &x);
for (i = 0; i < 10; i++)
{
if (x < a[i] && x > a[i + 1])
break;
}
for (j = 9; j >= i + 1; j--)
a[j + 1] = a[j];
a[i + 1] = x;
printf("插入后排序好的数为:\n");
for (i = 0; i < 11; i++)
{
printf("%d ", a[i]);
}
return 0;
}
学习产出:
学会如何在数组中插入一个数值使后续的数组元素下标依次加1的方法。