C语言新手处理用户输入年份运算时输出异常值求助
问题分析与解决:年份运算后输出异常值
你代码里的输出语句写错了,导致打印的是变量fpy的内存地址,不是它的实际计算结果。
错误根源
- 出错代码行:
printf("%d",&fpy); - 这里的
&是取地址运算符,&fpy会返回变量fpy在内存中的存储地址(也就是你看到的6422032这类无意义数值),而非y/10的计算结果。 - 正确写法:去掉
&,直接传入变量名fpy,让printf输出变量存储的实际值。
修正后的完整代码
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ int d,m,f,y,spY; //char y[3]; printf("Day from date calculator \n"); printf("Please enter the date in DD/MM/YYYY formate. For example , 1/7/1440 \n"); printf(">>"); scanf("%d/%d/%i",&d,&m,&y); int fpy = y/10; printf("%d",fpy); // 移除了多余的&符号 return(0); }
新手小提示
- 使用
scanf时必须传变量地址(比如&y),因为它需要修改变量的内容; - 使用
printf输出变量值时,直接传变量名即可,不需要加&。
内容的提问来源于stack exchange,提问作者bob in the bin
相关产品推荐
相关产品推荐

