刚刚开始C语言学习,根据编程题求球的体积而衍生出来的问题
#include
#include
#define SCALE (4.0f * 3.1415926 / 3.0f)
int main()
{
int r = 10;
printf("volume = %f\n", r 的三次方(AI助手不允许我多次出现r) * SCALE);
system("pause");
return 0;
}
此程序正常运行
但问题是当我将%f 改为%d后
输出结果 volume = 1177393702
我将3.1415926变更为3 但此时输出结果为0
对此我存在疑惑,在搜索无果后,希望可以得到一些帮助,同时我也想理解一下 printf("%d“,a)中 ,a 的含义
因为我是刚刚开始入门所以问题可能在一些能力强的人眼里很简单,如果您不愿意帮助我就当看个笑话,勿恶意评论嘲讽;如果愿意,很感谢您对我的帮助
谢谢
printf()
输出格式中%f
需要对应输出数据类float
, %d
对应输出数据类型int
,由于你的程序计算结果是float
类型,你不能将%f
改为%d
,否则的话,显示结果就可能是无意义的数
强转一下SCALE试一试。SCALE=int(SCALE)
你定义的r为int型,而输出语句中用的是double型的格式符%f,int型的格式符确实为%d,所以输出正确。
关于printf("%d“,a)中 ,a 的含义浏览器可以找到。
我也是一个刚入门的,只能帮到你这些。
要这样写pow是math库中定义的函数,pow(a,n)就表示求a的n次方
#include <stdio.h>
#include <windows.h>
#include <math.h>
#define SCALE (4.0 * 3.1415926 / 3.0)
int main() {
int r = 10;
printf("volume = %f\n", pow(r,3)*SCALE);
system("pause");
return 0;
}