c语言已知从小到大排列的5个数(38,100,312,531,812),再输入一个数,要求按原来的规律将它插入该数组中。
时间: 2023-08-16 22:06:25 浏览: 40
可以通过遍历数组找到插入位置,然后将新数插入并移动后面的元素。具体实现如下:
```c
#include <stdio.h>
int main() {
int arr[6] = {38, 100, 312, 531, 812}; // 已知数组
int num, i, j;
printf("请输入一个数:");
scanf("%d", &num);
for (i = 0; i < 5; i++) {
if (num < arr[i]) { // 找到插入位置
for (j = 4; j >= i; j--) { // 后面的元素往后移
arr[j + 1] = arr[j];
}
arr[i] = num; // 插入新元素
break;
}
}
if (i == 5) { // 如果新元素比所有已知元素都大,则插入到最后
arr[i] = num;
}
// 输出结果
for (i = 0; i < 6; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输入一个数后,程序会输出插入该数后的完整数组,例如输入200,则输出:
```
38 100 200 312 531 812
```
相关问题
用c语言写一个程序功能是输入十个数,按从小到大排列输出
Sure, 我可以帮您解决这个问题!以下是 C 语言代码:
```c
#include <stdio.h>
int main() {
int arr[10];
int i, j, temp;
// 获取十个数
printf("请输入十个数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 排序
for (i = 0; i < 10; i++) {
for (j = 0; j < 10 - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出
printf("排序后的结果为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
如果您有任何问题,请随时问我!
输入10个数,按照从小到大排列,c语言
以下是一种使用冒泡排序法实现从小到大排列的C语言代码:
```c
#include <stdio.h>
int main() {
int arr[10];
int i, j, temp;
printf("请输入10个数:\n");
// 输入10个数
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 冒泡排序
for (i = 0; i < 9; i++) {
for (j = 0; j < 9 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出排序结果
printf("从小到大排序后的结果是:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行结果如下:
```
请输入10个数:
5 8 3 2 1 9 6 7 4 0
从小到大排序后的结果是:
0 1 2 3 4 5 6 7 8 9
```