C语言输出,数据问题

问题遇到的现象和发生背景

刚刚开始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;
}