定义一个15个元素的数组,从键盘上给数组输入元素,要求输入数组的数从小到大排列(即a[0]<a[1]<a[2]…<a[14]),如果输入的某个元素不符合规定,则重新输入该元素,最后输出整个数组使用c语言编写
时间: 2023-12-21 18:04:17 浏览: 110
C++将数字从键盘读入数组并统计数字出现的次数,元素从大到小的顺序排序
好的,以下是代码实现:
```c
#include <stdio.h>
int main() {
int arr[15];
int i, j, temp;
printf("请依次输入15个整数,每输入一个整数按一次回车:\n");
for (i = 0; i < 15; i++) {
scanf("%d", &arr[i]);
// 如果该元素不符合规定,则重新输入该元素
while (i > 0 && arr[i] < arr[i-1]) {
printf("输入的数不符合从小到大排列,请重新输入:\n");
scanf("%d", &arr[i]);
}
}
// 冒泡排序,将数组从小到大排列
for (i = 0; i < 14; i++) {
for (j = 0; j < 14-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 < 15; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在程序中,我们首先定义了一个长度为15的整型数组arr,然后使用for循环依次读入15个整数,并使用while循环判断当前输入的数是否符合从小到大排列的规定,如果不符合则要求用户重新输入。接下来,我们使用冒泡排序将数组从小到大排列,并输出排列后的结果。
输出结果示例:
```
请依次输入15个整数,每输入一个整数按一次回车:
1
2
4
3
输入的数不符合从小到大排列,请重新输入:
3
5
7
6
输入的数不符合从小到大排列,请重新输入:
6
8
9
10
11
12
13
14
15
排列后的数组为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
```
阅读全文