C语言 输入圆半径求面积周长输出失败 输出为0.00000000
发布网友
发布时间:2022-04-27 03:44
我来回答
共5个回答
热心网友
时间:2022-06-25 16:41
好心人都睡觉了么?
我来帮你解答吧。
因为s,c是unsigned int型变量,在printf("所求圆的面积为:%lf,所求圆的周长为:%lf\n",s,c);中不能实现从unsigned int到double(因为%lf)的隐式转换。
解决方法1: 改为printf("所求圆的面积为:%lf,所求圆的周长为:%lf\n",(double)s,(double)c);强制类型转换。
2. unsigned int r,s,c改为double。scanf("%d",&r)改为scanf("%lf",&r)。
祝国庆快乐。
热心网友
时间:2022-06-25 16:42
printf("所求圆的面积为:%lf,所求圆的周长为:%lf\n",s,c);
}
这个有错误,将两个%lf,都改成%d就ok了。应该是类型转换的时候出错了、
不过这样还是有点问题。
定义的时候可以将r,s,c都定义成float类型;
输入、输出的时候用%f就没问题了、你试试
热心网友
时间:2022-06-25 16:42
变量s c实际上是浮点型,你也用了浮点型进行pirintf,但是定义的是整形int
改成:
unsigned int r;
float s,c;
完整程序代码:
#include "stdio.h"
#define Pi 3.14
void main()
{
unsigned int r; //<<-------------这里是改动
float s,c; //<<-------------这里是改动
printf("圆的半径为:");
scanf("%d",&r);
s=Pi*r*r;
c=2*Pi*r;
printf("所求圆的面积为:%lf,所求圆的周长为:%lf\n",s,c);
}
有问题继续问
热心网友
时间:2022-06-25 16:43
强制类型转换
热心网友
时间:2022-06-25 16:43
亲,为啥你定义的整型变量。输出时用%lf