You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 06:46:05