#include<stdio.h>#define pi 3.1415926int area(double r);main(){ int x,m; printf("please input x:"); scanf("%f",&x); m=area(x); printf("%f\n",m); return 0;}int area(double r){ double c; //s=pi*r*r; c=2*pi*r; return c;}
3 回答
已采纳
Yexiaomo
TA贡献152条经验 获得超157个赞
include<stdio.h>//此处 头文件 改为: #include<stdio.h> #define pi 3.1415926 int area(double r); main(){ int x,m; printf("please input x:"); scanf("%f",&x); //错误一: 你上面定义时, x 为 int 类型, 但是这里却用的是 %f 格式 m=area(x); //看area的函数参数为 double 类型, x 却为 整形 printf("%f\n",m); //area 函数 返回值类型为 int , 你这里却用 %f 格式输出 return 0; } //下面函数体错误就省略了 int area(double r) { double c; //s=pi*r*r; c=2*pi*r; return c; }
/*
*所以 整个程序到处弥漫着 强制转换 精度损失 的气息
*解决办法, 把所有类型 改为 double类型, 输入输出 都用 %lf 格式控制
*/
#include<stdio.h> #define PI 3.1415926 //#define 定义的 变量, 记得全部大写,, 如果不信, 可以看书,绝对有的 double area(double r); int main(){ double x,m; printf("please input x: "); scanf("%lf",&x); //printf("%lf\n", area(x)); printf("%.2lf\n", area(x));//为了整洁, 这里输出保留两位小数 return 0; } double area(double r) { return 2*PI*r; }
另外,贴代码, 要像上面这样贴......
你那样太乱了
-----------------------------------------------------分--割--线--------------------------------------------------------------
啦啦~~Imcainiao
- 3 回答
- 0 关注
- 1419 浏览
添加回答
举报
0/150
提交
取消