解题思路:
注意事项:
参考代码:
#include <stdio.h>
int main()
{
int arr[100];
int num; //需要插入的数
int a = 0;
// 循环读取数字,直到遇到换行符或输入结束
while (scanf("%d", &arr[a]) == 1) {
a++;
// 检查是否是换行符,如果是则退出循环
if (getchar() == '\n') {
break;
}
}
scanf("%d", &num);
/*
方法一:新建数组
1.定义原数组arr、插入元素num,计算原数组长度n
2.定义新数组new_arr,大小n+1
3.找到插入位置
4.剩下元素复制过去
5.打印新数组
*/
/*
int new_arr[10];
int i = 0, j = 0;
while (i < 9 && arr[i] < num)
{
new_arr[j] = arr[i];
i++;
j++;
}
new_arr[j] = num;
j++;
while (i < 9 && arr[i] > num)
{
new_arr[j] = arr[i];
i++;
j++;
}
for (int k = 0; k < 10; k++)
{
printf("%d\n", new_arr[k]);
}
*/
/*方法二:数组插入(动态分配)
1.定义数组arr、有效元素个数n、要插入元素num
2.找到插入位置pos
3.插入位置的数和后面的数都往后移一位
4.插入
5.打印
*/
int n = 9; //有效元素个数
int pos = 0; //插入位置
while (pos < n && arr[pos] < num)
{
pos++;
}
for (int i = n; i > pos; i--)
{
arr[i] = arr[i-1];
}
arr[pos] = num;
for (int j = 0; j < n+1; j++)
{
printf("%d\n", arr[j]);
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复