######可是我要输入四个数才能得出前三个数的升序结果
就像这样
#include
#include
int main()
{
int a, b, c;
scanf("%d%d%d\n ", &a, &b, &c);
if (a <= b && a <= c)
{
if (b <= c)
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, c, b);
}
else
{
if (b <= a && b <= c)
{
if (a <= c)
printf("%d,%d,%d\n", b, a, c);
else
printf("%d,%d,%d\n", b, c, a);
}
else if (c <= a && c <= b)
{
if (a <= b)
printf("%d,%d,%d\n", c, a, b);
else
printf("%d,%d,%d\n", c, b, a);
}
}
return 0;
}
scanf函数的格式化字符串中,\n后的空格删掉
你的代码逻辑很清晰,没有问题。但是输入的scanf函数部分,尾部\n之后多了1个空格,删除即可。
修改后的代码如下
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, c;
scanf("%d%d%d\n", &a, &b, &c);
if (a <= b && a <= c)
{
if (b <= c)
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, c, b);
}
else
{
if (b <= a && b <= c)
{
if (a <= c)
printf("%d,%d,%d\n", b, a, c);
else
printf("%d,%d,%d\n", b, c, a);
}
else if (c <= a && c <= b)
{
if (a <= b)
printf("%d,%d,%d\n", c, a, b);
else
printf("%d,%d,%d\n", c, b, a);
}
}
return 0;
}
是换行后面的空格的问题,去掉就好了。