C语言输入数值后输出0或乱码的问题求助(附代码示例)
C语言输入后输出0/乱码问题排查
你的代码核心错误出在printf的参数传递上:
看这段代码:
printf("\n Your radius is: %lf",&r);
这里你错误地传入了变量r的地址(&r),而不是变量r本身。%lf格式符要求对应一个double类型的变量值,传入地址后,printf会错误读取该地址对应的内存内容,导致输出0或者乱码。
修正代码
把&r改成r即可:
#include <stdio.h> #include <stdlib.h> #include<math.h> int main() { double r,c; const float PI=3.14; printf("enter radius:\n"); scanf("%lf",&r); printf("\n Your radius is: %lf", r); return 0; }
额外提示
- 输出提示时建议用
\n统一换行,避免直接换行导致的编译警告 - 如果需要更精确的圆周率,可以使用
<math.h>中的M_PI(需在包含头文件前定义#define _USE_MATH_DEFINES)
内容的提问来源于stack exchange,提问作者Nandan kailas
相关产品推荐
相关产品推荐

