我做了两个简单的程序,但得到了意想不到的答案。有人可以帮忙吗?
//main program
#include<stdio.h>
#include<conio.h>
float main(int argc, char* argv[])
{
float a,b,c;
a=5; b=10;
c=sum(a,b);
printf("%f + %f = %f \n",a,b,c);
return (0);
}
//sum program
#include<stdio.h>
float sum (float a,float b)
{
float c;
c=a+b;
return(c);
}
该程序的输出错误。我不明白为什么。我用gcc编译了程序。有人可以评论吗?
答案 0 :(得分:4)
这应该是您的实际代码:
#include<stdio.h>
float sum (float,float);
int main(int argc, char* argv[])
{
float a,b,c;
a=5; b=10;
c=sum(a,b);
printf("%f + %f = %f \n",a,b,c);
return (0);
}
//sum program
float sum (float a,float b)
{
float c;
c=a+b;
return(c);
}
最初你没有提到sum
的原型,通常根据C99它应该默认为int
所以你的代码不会编译 - 而且你还包括stdio.h
两次而且你包括conio.h
没有理由。同样main
根据ISO应该返回int
而不是float
,而conio.h
是非标准的。
答案 1 :(得分:1)
函数声明总是在main函数之前,您也可以在main函数之前编写函数定义。这是你的错误!
请改为尝试:
//main program
#include<stdio.h>
#include<conio.h>
#include<stdio.h>
float sum (float a,float b)
{
float c;
c=a+b;
return(c);
}
float main(int argc, char* argv[])
{
float a,b,c;
a=5; b=10;
c=sum(a,b);
printf("%f + %f = %f \n",a,b,c);
getch();
return (0);
}
答案 2 :(得分:0)
我的编译器只抱怨float main(int argc, char* argv[])
,说它想要int
,但其余的似乎没问题。
答案 3 :(得分:-1)
以下是一些提示......
以下是代码:
#include<stdio.h>
float sum(float a,float b)
{
float c;
c=a+b;
return(c);
}
void main()
{
float a,b,c;
a=5; b=10;
c=sum(a,b);
printf("%f + %f = %f \n",a,b,c);
}
希望这有助于你:)