C语言printf输出异常值求助:输入整数后出现随机数问题
C语言输入后输出异常值的问题解决
你的代码核心错误是:最后一行printf中,你传入的是变量favnum的地址(&favnum),而非变量本身的值。%d格式说明符需要接收int类型的数值,但你传递的是内存地址,所以输出的是该地址对应的整数值,这就是你看到随机异常数字的原因。
哪怕把变量改成float或double,只要printf里还是传&favnum,问题就不会解决——因为你依然在输出地址,而且如果格式符(比如%f)和传入的地址类型不匹配,还会触发未定义行为,结果同样异常。
修正后的int类型版本代码:
#include<stdio.h> int main() { int favnum; printf("Enter number: "); scanf("%d", &favnum); // 移除&,直接使用变量名输出其值 printf("My favorite number is %d.", favnum); return 0; }
如果要使用float类型,需要同时修正格式符和变量引用:
#include<stdio.h> int main() { float favnum; printf("Enter number: "); scanf("%f", &favnum); printf("My favorite number is %f.", favnum); return 0; }
内容的提问来源于stack exchange,提问作者Unknown boi
相关产品推荐
相关产品推荐

