新手求助。不知道哪里出错了。
求2个整数中的较大数,不知道哪里错了。#include<stdio.h>
int main()
{
int max(int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
return 0;
}
int max(int x,int y)
{
int z;
if(x>y)
z=x;
else z=y;
return(z);
} 哪里出错了?你应该问你的编译器 bin554385863 发表于 2019-11-5 18:59
哪里出错了?你应该问你的编译器
能运行是能运行,但无法实现取到2个整数中最大的值,我输入8,9结果就max=8 本帖最后由 bin554385863 于 2019-11-5 19:06 编辑
a2881847 发表于 2019-11-5 19:03
能运行是能运行,但无法实现取到2个整数中最大的值,我输入8,9结果就max=8
int max(int x,int y)
{
int z;
if(x>y)
z=x;
else z=y;
return(z);
}
把if---else的大括号加上,代码规范一些
偷工减料,最容易出些编译器不能是理解的bug 程序没问题,我估计是你的输入有问腿,你的scanf函数是("%d,%d",&a,&b),你是不是输入的是a, 然后按了一下空格,再输入的b?
如果是这样,那你给a 赋的值是a 的值,但你的b 赋的值是空格,也就是空格的ASCII码的值(具体多少我忘记了),而你最后输入的b的值就被抛弃了,所以运行之后你的程序比较的是a 和空格的值。
想要正确运行的话,就这样输入,先输入a 再输入”,“(注意这里是英文输入法下的”,“),最后输入b。
最后我提醒你一下,scanf函数的输入是根据("")双引号里的东西来输入的,比如你写成("%d,%d",&a,&b),那你必须输入a,b;最好写成("%d%d",&a,&b),输入a,中间你输入多少空格都没问题,再输入b。
至于原因,就是scanf函数的还有一个参数叫分隔符,这方面的东西比较多,我就不细说,反正你scanf函数不特别指明那默认是以空格为分隔符,来区别一个数据和另一个数据的。 楼上说的对 改为
scanf("%d",&a);
scanf("%d",&b);
页:
[1]