#include "stdafx.h"
double mj(double r); //在这里声明
int _tmain(int argc, _TCHAR* argv[])
{
double r,s; //声明变量为什么不初始化??
//mj(r); //这句话多余注释掉了 而且你那么写貌似不规范
scanf("%lf",&r); //精度问题double用 lf
s=mj(r);
printf("%.2f",s);
return 0;
}
double mj(double r)
{
double s1; //同上 要初始化
s1=3.14159*r*r;
return s1;
}
修改一下
VS2008的工程
#include "stdafx.h"
#include
const double PI = 3.14159;
double mj(double r);
int _tmain(int argc, _TCHAR* argv[])
{
double r = 0;
printf("input r\n");
scanf("%lf",&r);
printf("%.2f",mj(r));
return 0;
}
double mj(double r)
{
double s = 0;
s = PI * r * r;
return s;
}
我稍微改了下,不知行不行
#include
void main()
{
double r;
double mj(double a);
scanf("%lf",&r);
printf("%.2lf",mj(r));
}
double mj(double a)
{
double s1;
s1=3.14159*a*a;
return s1;
}
我感觉是输入输出类型不对,把单精度的硬输到双精度的,把双精度的硬作单精度输出。
比如double就要用在f前加个l,long也是这样
#include
void main()
{
double r,s;
double mj(double r);
scanf("%lf",&r); //改成lf,下面也是
s=mj(r);
printf("%.2lf",s);
}
double mj(double r)
{
double s1;
s1=3.14159*r*r;
return s1;
}
#include
double mj(double r);
void main()
{
double r,s;
scanf("%lf",&r);
s=mj(r);
printf("%.2lf\n",s);
}
double mj(double r)
{
double s1;
s1=3.14159*r*r;
return s1;
}
我把声明放在了上面,scanf()把f换成了lf
你把你求面积函数double mj(double r)里的r 换成其他字符