快捷导航

请问这个代码有设么问题吗,运行没有错,但是结果不正常

#include#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;}

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

include//此处头文件改为:#include#definepi3.1415926intarea(doubler);main(){        intx,m;        printf("pleaseinputx:");        scanf("%f",&x);//错误一:你上面定义时,x为int类型,但是这里却用的是%f格式        m=area(x);//看area的函数参数为double类型,x却为整形        printf("%f\n",m);//area函数返回值类型为int,你这里却用%f格式输出        return0;}//下面函数体错误就省略了intarea(doubler){        doublec;        //s=pi*r*r;        c=2*pi*r;        returnc;}/*
*所以 整个程序到处弥漫着 强制转换 精度损失 的气息
*解决办法, 把所有类型 改为 double类型, 输入输出 都用 %lf 格式控制
*/
#include#definePI3.1415926//#define定义的变量,记得全部大写,,如果不信,可以看书,绝对有的doublearea(doubler);intmain(){        doublex,m;        printf("pleaseinputx:");        scanf("%lf",&x);        //printf("%lf\n",area(x));        printf("%.2lf\n",area(x));//为了整洁,这里输出保留两位小数        return0;}doublearea(doubler){        return2*PI*r;}另外,贴代码, 要像上面这样贴......
你那样太乱了
-----------------------------------------------------分--割--线--------------------------------------------------------------
啦啦~~Imcainiao
回复

使用道具 举报

写代码没用代码格式,一般人是不想看的。很乱没有可读性
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP