本题目要求读入若干整数(最少1个不超过4个),然后按从小到大的顺序输出。
输入格式:
最少1个不超过4个整数,以空格分隔。
输出格式:
以一个空格分隔输出所有排序后的数。
输入样例:
18
输出样例:
18
输入样例:
18 15
输出样例:
15 18
输入样例:
1 8 6
输出样例:
1 6 8
输入样例:
11 28 5 9
输出样例:
5 9 11 28
本题目要求读入若干整数(最少1个不超过4个),然后按从小到大的顺序输出。
输入格式:
最少1个不超过4个整数,以空格分隔。
输出格式:
以一个空格分隔输出所有排序后的数。
输入样例:
18
输出样例:
18
输入样例:
18 15
输出样例:
15 18
输入样例:
1 8 6
输出样例:
1 6 8
输入样例:
11 28 5 9
输出样例:
5 9 11 28
输入只能到a[3],超过a[3]就越界了,因为定义a[4]就只定义了a[0],a[1],a[2],a[3],没有a[4]
修改完善如下,供参考:
#include <stdio.h>
int main()
{
int a[4] = { 0 }, i, j, k, n;
for (i = 0; i < 4; ) { //输入
scanf("%d", &a[i++]);
if ((getchar()) == '\n') break;
}
for (n = i, i = 0; i < n - 1; i++) { //排序
for (j = 0; j < n - 1 - i; j++) {
if (a[j] > a[j + 1]) {
k = a[j]; a[j] = a[j + 1]; a[j + 1] = k;
}
}
}
for (i = 0; i < n; i++) //输出
printf(i == 0 ? "%d" : " %d", a[i]);
return 0;
}
数组a[4],最大下标是3。你店面用a[4]就越界了