c语言任意给半径求圆面积

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:46:55
#include <stdio.h>
#include <conio.h>

void main()
{
double r;
double s;
double pi;
pi = 3.1415926;
s = pi*r*r;
printf("The radius:");
scanf("%g",&r);
printf("The Area is:%g\n",s);
}
这是我写的代码。算出的结果总是一个数。帮忙解答一下。
按各位高手的方法做了 但s值仍旧是一个 我用的是c++6.0编译器

你的程序问题有两点。
1 变量要先定义,赋值然后才能参与运算,所以要先输入r,才能计算s=pi*r*r
2 scanf("%lf",&r);中格式要使用%lf
注意:double双精度型数值的输入必须用%lf,而它的输出则和float单精度型数值一样用%f,%e,%g均可。这是一个被忽视经常容易出错的地方。
程序更改如下,已在win-tc下运行通过。
#include <stdio.h>
#include <conio.h>

void main()
{
double r;
double s;
double pi;
pi = 3.1415926;
printf("The radius:");
scanf("%lf",&r);
s = pi*r*r;
printf("The Area is:%g\n",s);
}

#include <stdio.h>
#include <conio.h>

void main()
{
double r;
double s;
double pi;
pi = 3.1415926;
printf("The radius:");
scanf("%lf",&r); /*应该是%lf,%g不能用在输入中 */
s = pi*r*r; /* 应输入数值后再计算 */
printf("The Area is:%g\n",s);
getchar();
getchar(); /* 需要暂停。否则看不到结果,如果你用的是C++编译器,需要连写两个getchar */
}

将s = pi*r*r; 放到
scanf("%g",&r);