c语言求两个数中的最大值,请问我错在哪里?#include"stdio.h"void 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);}int max(int x,int y){ int z; if(x>y) {z=x;}; else {z=y;}; return(z);}

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 01:45:37
c语言求两个数中的最大值,请问我错在哪里?#includey) {z=x;}; else {z=y;}; return(z);}" />

c语言求两个数中的最大值,请问我错在哪里?#include"stdio.h"void 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);}int max(int x,int y){ int z; if(x>y) {z=x;}; else {z=y;}; return(z);}
c语言求两个数中的最大值,请问我错在哪里?
#include"stdio.h"
void 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);
}
int max(int x,int y)
{
int z;
if(x>y) {z=x;};
else {z=y;};
return(z);
}
#include"stdio.h"
void 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);
}
int max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return z;
}
这是改完后的,还是不行啊,只能显示输入的两个数的前面一个,不管输入什么,结果都是max=前面的那个数,咋办啊?救命啊?

c语言求两个数中的最大值,请问我错在哪里?#include"stdio.h"void 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);}int max(int x,int y){ int z; if(x>y) {z=x;}; else {z=y;}; return(z);}
问题在这个语句scanf("%d,%d",&a,&b);
一般情况在两个%d之间不加“,”.即写成scanf("%d%d",&a,&b);
详细原因如下:
对scanf函数来讲"%d,%d"中间的那个“,”是分隔符,即用来分开你输入的两个数据的字符.如果不加“,”,直接写scanf("%d%d",&a,&b);那么系统就默认回车或空格作分隔符,这样符合大多数人的输入习惯,所以通常都这么写.
但若加上那个“,”就只能以“,”做分隔符.比如你想输入3和5两个数据,就只能这样输入:3->,->5(即输完第一个数据按“,”再输第二个).否则出错.估计你在输入数据时很可能是用回车或空格当作分隔符,所以出错.