C语言的问题...在线等...

如题所述

第1个回答  2016-10-25

/*程序那儿是大括号么,可能是那的错误,还有#define 那儿其他的除非标点符号,应该没错,s=0应该会有个警告*/

#include <stdio.h>
//#include "stdlib.h"
//#include <iostream>

//using namespace std;
#define PI 3.1415926

int main()
{      //图片看不清楚,是不是这儿是大括号?
float r = 3.0,s = 0;    
s  = PI * r * r;
printf("%f\n",s);
// system("pause");
return 0;
}

第2个回答  2016-10-25
#define 预定义的时候不需要加分号结束
main 里面的代码改成这样
doble r=3.0,s;
s=PI*r*r;
printf("%0.8f\n",s);

float 精度不够高,只有6位,double 有8位小数点。追问

0.8是什么啊?

追答

你学过c没? 这个是表示要保留几个小数点。其实应该是0.7,这样才能PI的小数点位数一样。我写成0.8只是把double的精度表示出来而已。

追问

double的精度不是15-16位有效数字么。。

追答

对对,double的精度是15-16。
float的有效字为7个,而这个乘积的结果超出了。当然不能用float 类型。

我前一次的那个表示有点不对。输出格式,f默认是小数点默认只显示6位。。。你想输出几个小数点就%零点几f表示。。。

追问

不是啊,你这改也并没有什么用啊,编译的时候提示的是S = PI*r*r有错误。(PS:我专业就是学计算机的)

追答

那你这学得有点不行呀!就这几句代码也搞那么久?你之类出错是不是大小写不分。

追问

就这一道题想不通😂😂我感觉行的...
算了也不纠结了

本回答被网友采纳
第3个回答  2016-10-25
define后面不加分号的吧
第4个回答  2016-10-25
define后面不要 ;
相似回答