求修复:计算圆柱体体积的C语言代码持续报错
修复圆柱体体积计算的C语言代码错误
你的代码存在一个关键语法错误,会导致程序运行异常:
- 读取高度
h的scanf语句中,未使用取地址符&,scanf需要传入变量的内存地址才能正确存储输入值。
修复后的完整代码
#include <stdio.h> int main() { const float pi = 3.14; float r, h, vol; printf("Enter Radius Of the Cylinder.\n"); scanf("%f", &r); printf("Enter Height of the Cylinder.\n"); scanf("%f", &h); // 此处添加了取地址符& vol = r * r * pi * h; printf("Volume Of Cylinder is %f\n", vol); // 额外添加换行符,优化输出格式 return 0; }
错误说明
scanf("%f", h);中的h是变量的当前值,而非内存地址,scanf无法通过值来修改变量内容。必须使用&h获取变量h的内存地址,输入的数值才能被正确存入h中。
可选优化建议
- 若需要更精确的圆周率,可引入
<math.h>头文件,使用宏定义M_PI(部分编译器需开启数学库编译选项,比如GCC需添加-lm参数):#include <math.h> // 替换原有pi定义 const double pi = M_PI; - 添加输入验证,避免用户输入非数值内容导致程序异常:
if (scanf("%f", &r) != 1) { printf("Invalid input for radius!\n"); return 1; }
内容的提问来源于stack exchange,提问作者RobbaN
相关产品推荐
相关产品推荐

