cedtek 2021-09-12 20:58 采纳率: 100%
浏览 76
已采纳

if...else...用法的逻辑问题

《全国计算机等级考试二级教程—— C 语言程序设计(2019年版)》
第 4 章 选择结构
习题4.21
4.21 编写程序,输入一位学生的生日(年:y0、月:m0、日:d0),并输入当前的日期(年:y1、月:m1、日:d1),输出该生的实际年龄。

  1. 判断年份
  2. 判断月份
  3. 判断天数

ex4_21.c

#include <stdio.h>

int main(void)
{
  int y0=0, y1=0, m0=0, m1=1, d0=0, d1=0;

  printf("请输入您的生日(例:1999 1 1)\n");
  scanf("%d%d%d", &y0, &m0, &d0);
  printf("您的生日为:%d年%d月%d日\n", y0, m0, d0);
  printf("请输入当前的日期(例:1999 1 1)\n");
  scanf("%d%d%d", &y1, &m1, &d1);
  printf("当前日期为:%d年%d月%d日\n", y1, m1, d1);

  if (y1 >= y0)
  {
    if (m1 >= m0)
    {
      if (d1 >= d0)
      {
        printf("您的实际年龄为:%d岁\n", y1-y0);
      }
      else
      {
        printf("您的实际年龄为:%d岁\n", y1-y0-1);
      }
    }
    else
    {
        printf("您的实际年龄为:%d岁\n", y1-y0-1);
    }
  }
  else
  {
    printf("您的实际年龄为:0岁\n");
  }

  return 0;
}

img

程序运行结果错误,不知道哪里逻辑有问题?

  • 写回答

1条回答 默认 最新

  • [PE]经典八炮 2021-09-12 21:10
    关注

    if (m1 >= m0)
    {
    if (d1 >= d0)
    {
    printf("您的实际年龄为:%d岁\n", y1-y0);
    }
    else
    {
    printf("您的实际年龄为:%d岁\n", y1-y0-1);
    }
    }
    你想想这里,如果现在的月比以前大,而日比以前小,会输出什么?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 9月13日
  • 创建了问题 9月12日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度