[求助]函数不声明会产生什么结果?
#include<stdio.h>main()
{float a,b;
int c;
scanf("%f,%f,",&a,&b);
c=max(a,b);
printf("Max is %d\n",c);
}
max(float x,float y)
{float z;
z=x>y?x:y;
return(z);
}
输入2.5,1.5 tc输出结果却是1,vc输出结果是2,为什么?
如果改成
#include<stdio.h>
max(float x,float y)
{float z;
z=x>y?x:y;
return(z);
}
main()
{float a,b;
int c;
scanf("%f,%f,",&a,&b);
c=max(a,b);
printf("Max is %d\n",c);
}
结果是2,应该和声明有关,但不知道原因是什么
main()
{int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("Max is %d\n",c);
}
max(int x,int y)
{int z;
z=x>y?x:y;
return(z);
}这个程序的输出结果也是2,很难理解?
[此贴子已经被作者于2007-4-23 22:04:30编辑过]
----------------解决方案--------------------------------------------------------
不知你想问什么?
你的最大值不是2.5因为你的变量C是整型数。
还有,如果你的主函数在前,必须要先声明。
----------------解决方案--------------------------------------------------------
默认的返回是整型的值.应该在函数前加.float 试试看吧
----------------解决方案--------------------------------------------------------
第一个程序,在TC下的结果,输入:
67.4 54.4
Max is 3
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int max(float x,float y);
main()
{
float a,b,c;
scanf("%f%f,",&a,&b);
printf("a=%f b=%f\n",a,b);
c=max(a,b);
printf("Max is %f\n",c);
}
int max(float x,float y)
{
float z;
z=(x>y)?x:y;
printf("z=%f\n",z);
return(z);
}
----------------解决方案--------------------------------------------------------
d 是十进投影整型数。 f 表示实型数
----------------解决方案--------------------------------------------------------
应该先对函数进行申明,要不然会出现无法意料的错误......
----------------解决方案--------------------------------------------------------
顶7楼。
实在不想“申明”则应将被调函数先写出来,发调函数写在它后面。
----------------解决方案--------------------------------------------------------
你的函数没有加返回值类型,加float就应该对了,因为系统给它加默认的是int型得.
----------------解决方案--------------------------------------------------------
函数不声明且函数在main()之后,根本编不过的!
----------------解决方案--------------------------------------------------------