问这个问题我觉得很"愚蠢",但如果有人能告诉我修改输入结果的方法,就会出现在命令窗口上。
示例:
我想按从小到大的顺序对5个数字(1,3,4,7,5)进行排序,命令窗口上的结果必须是:
input: 1 3 4 7 5 /* 1 line input */
output: 1 3 4 5 7 /* 1 line output */
编辑:这是我的代码
for (i = 0; i < 5; i++)
{
scanf("%d ", &array[i]);
}
如果我使用这个代码,命令窗口上的结果必须是:
1
3
4
7
5
但我希望所有的输入数字只在一行中作为:
1 3 4 7 5
那么我该如何处理我的代码呢?
关于您编辑的问题,只需将"%d "
替换为"%d"
。
#include <stdio.h>
#define N 5
int main(void){
int i, j, array[N];
printf("Please enter the %d numbers.n", N);
printf("input : ");
for(i=0;i<N;++i){
scanf("%d", &array[i]);
if(i!=0){
for(j=i;j>0 && array[j-1] > array[j];--j){
//swap array[j] and array[j-1]
int tmp = array[j];
array[j] = array[j-1];
array[j-1] = tmp;
}
}
}
printf("output : ");
for(i=0;i<N;++i){
if(i!=0)
putchar(' ');
printf("%d", array[i]);
}
putchar('n');
return 0;
}