为何编译出来不能比较大小
为什么编译出来不能比较大小?
#include<stdio.h>
#define MAX(a,b) (a>b)?a:b
main()
{
int x,y,max;
printf("input two number x,y\n");
scanf("%d%d\n",&x,&y);
max=MAX(x,y);
printf("max=%d\n",max);
}
如果输进去是2,3 输出来是max=2
如果输进去是3,2 输出来是max=3
反正总是取得前面那个数,这是为什么?
------解决方案--------------------
scanf("%d%d\n",&x,&y);
输入2 3,不要逗号
------解决方案--------------------
楼主是你scanf的问题,注意是格式匹配
你要是输入 2 逗号 3 --》scanf("%d,%d"...)
注意匹配
另外,把scanf中的\n去掉
------解决方案--------------------
这个问题楼主可以自己试一试,如果加上\n,总共你需要输入3个数,它会取前两个。
这样理解,前面两个%d,都需要用空格或者回车来结束输入,但是你的输入中还有\n,也就是说要再输入一个回车才能结束这条csanf语句。
------解决方案--------------------
lz注意了,scanf中尽量不要使用非输入控制符,尤其是\n,两个%d中间最好用空格分开,这样就行了,关于scanf你可以看看这个——http://blog.****.net/u012421456/article/details/18501309
也可以自己搜索
#include<stdio.h>
#define MAX(a,b) (a>b)?a:b
main()
{
int x,y,max;
printf("input two number x,y\n");
scanf("%d%d\n",&x,&y);
max=MAX(x,y);
printf("max=%d\n",max);
}
如果输进去是2,3 输出来是max=2
如果输进去是3,2 输出来是max=3
反正总是取得前面那个数,这是为什么?
------解决方案--------------------
scanf("%d%d\n",&x,&y);
输入2 3,不要逗号
------解决方案--------------------
楼主是你scanf的问题,注意是格式匹配
你要是输入 2 逗号 3 --》scanf("%d,%d"...)
注意匹配
另外,把scanf中的\n去掉
------解决方案--------------------
这个问题楼主可以自己试一试,如果加上\n,总共你需要输入3个数,它会取前两个。
这样理解,前面两个%d,都需要用空格或者回车来结束输入,但是你的输入中还有\n,也就是说要再输入一个回车才能结束这条csanf语句。
------解决方案--------------------
#include<stdio.h>
#define MAX(a,b) (a>b)?a:b
main()
{
int x,y,max;
printf("input two number x,y\n");
scanf("%d%d\n",&x,&y);
max=MAX(x,y);
printf("max=%d\n",max);
}
如果输进去是2,3 输出来是max=2
如果输进去是3,2 输出来是max=3
反正总是取得前面那个数,这是为什么?
# include <stdio.h>
# define MAX(a,b) (a>b) ? a : b
void main()
{
int x, y, max;
printf("input two number x,y\n");
scanf("%d %d", &x, &y);
max = MAX(x,y);
printf("max = %d\n",max);
}
lz注意了,scanf中尽量不要使用非输入控制符,尤其是\n,两个%d中间最好用空格分开,这样就行了,关于scanf你可以看看这个——http://blog.****.net/u012421456/article/details/18501309
也可以自己搜索