新手求教个C的问题
#include <stdio.h>void main()
{
int a, b,c,temp;
printf("Please input three numbers:");
scanf("%d%d%d\n",&a, &b, &c);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(a>c)
{
temp=a;
a=c;
c=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
printf("%d%d%d\n",a,b,c);
}
为什么编译出来输入三个数按回车不能直接得到结果?回车后输入任意数字字母再回车又可得到结果,怎么会这样?哪里错了吗?求解释
scanf("%d%d%d\n",&a, &b, &c); 这一行应该去掉 \n ,因为输入时已经包含回车了,你这样就要求必须输入一个回车 帮你调整了一下
#include <stdio.h>
void main()
{
int a, b,c,temp;
printf("Please input three numbers:\n");
scanf("%d%d%d",&a, &b, &c);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(a>c)
{
temp=a;
a=c;
c=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
printf("%-5d%-5d%-5d\n",a,b,c);
}
“\n”是不是这个在作怪? 你的问题有没有得到解决? 我想请问你是怎么输入的,如果是每输入一次按空格,最后一次按回车的话就没问题
但每输入一次按回车的话就有问题,建议在scanf函数后面加一句getchar();
#include <stdio.h>
int main()
{
int a, b,c,temp;
printf("Please input three numbers:\n");
scanf("%d,%d,%d",&a, &b, &c);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(a>c)
{
temp=a;
a=c;
c=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
printf("%d<%d<%d\n",a,b,c);
return 0;
} 输一个数字按一次回车(或空格或Tab)、三次回车按完3个数字才算输入完毕,但中间千万不能用逗号隔
scanf("%d%d%d\n",&a, &b, &c);说明要输入4个回车哦
应为\n就是回车你必须输入才能执行下一句代码 去掉 \n 新人,路过学习一下{:1_1:} 建议楼主将scanf("%d%d%d\n",&a, &b, &c);改成scanf("%d %d %d",&a, &b, &c);这样就没有问题了,注意scanf语句输入时一定要按引号里面的格式输入。 看看
页:
[1]