当前位置: 代码迷 >> C语言 >> 请问如下C程序为什么两个结果不一样?
  详细解决方案

请问如下C程序为什么两个结果不一样?

热度:41   发布时间:2007-03-19 16:42:26.0
请问如下C程序为什么两个结果不一样?

请问如下C程序为什么结果不一样:
main()
{
int a,b;
float c;
scanf("%d %d",&a,&b);
c=(a+b)/2.0;
printf("\n这两个数的和除以2为%f",c); //输入两个数之后这个算的结果对
printf("\n这两个数的和除以2为%f",sum(a,b)); //输入两个数之后这个算的结果总是0
getch();
}
sum(a,b)
int a,b;
{
float s;
s=(a+b)/2.0;
return(s);
}
请问这到底是为什么?

搜索更多相关的解决方案: 结果  结果  

----------------解决方案--------------------------------------------------------
我的是一样的。
----------------解决方案--------------------------------------------------------

你的sum函数 前面没有定义类型 所以默认返回值为int的 而你输入的是%f

应这样定义sum函数
float sum(int a,int b);
还有 建议函数的参数在()内定义比较好

main()
{
float sum(int a,int b); /* 函数声明 */
int a,b;
float c;
scanf("%d %d",&a,&b); /* 输入的格式要注意下 */
c=(a+b)/2.0;
printf("\n%f",c);
printf("\n%f",sum(a,b));
getch();
}
float sum(int a,int b)
{
float s;
s=(a+b)/2.0;
return(s);
}


----------------解决方案--------------------------------------------------------

我的直接 连编译都没有通过


----------------解决方案--------------------------------------------------------
有的空格是在中文输入法下输入的。
----------------解决方案--------------------------------------------------------

改成这样试试
#include<stdio.h>

main()
{
int a,b;
float c;
float sum(int,int);
scanf("%d %d",&a,&b);
c=(a+b)/2.0;
printf("\n??个数的和除以2?%f",c);
printf("\n??个数的和除以2?%f",sum(a,b));
getch();
}
float sum(int a,int b)
{
float s;
s=(a+b)/2.0;
printf("----%f\n",s);
return(s);
}


----------------解决方案--------------------------------------------------------

sum函数没有在main函数里声明


----------------解决方案--------------------------------------------------------
谢谢大家的帮忙,float sum(int a,int b)后好用
----------------解决方案--------------------------------------------------------
  相关解决方案