欣坚强 2021-11-12 21:25 采纳率: 57.4%
浏览 22
已结题

为什么感觉代码没错,却结果不对?

问题:读取四个整数 A,B,C,D,用来表示游戏的开始时间和结束时间。
其中 A 和 B 为开始时刻的小时和分钟数,C 和 D 为结束时刻的小时和分钟数。
请你计算游戏的持续时间。
比赛最短持续 1 分钟,最长持续 24 小时。
输入格式
共一行,包含四个整数 A,B,C,D。
输出格式
O JOGO DUROU X HORA(S) E Y MINUTO(S),表示游戏共持续了 X 小时 Y 分钟。
代码:

#include<stdio.h>
int main()
{
    int a,b,c,d;
    int h=0,M=0;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    if(a>c){
      h=24+c-a;  
    }
    if(a<c){
      h=c-a;
    }
    if(a=c){
        if(d<b){
            h=24;
        }else{
            h=0;
        }
    }
    int m=d-b;
    if(m<0){
      M=m+60;
      h=h-1;
    }else{
      M=m;
    }
    
    printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)",h,M);
    return 0;
}


  • 写回答

1条回答 默认 最新

  • bingbingyihao 2021-11-12 21:46
    关注

    回答:结果出来了,修改了前面的i部分,截图如下:

    img

    #include<stdio.h>
    
    int main()
    {
        int a, b, c, d;
        int h = 0, M = 0;
        scanf("%d %d %d %d", &a, &b, &c, &d);
        
        if (a > c) {
            h = 24 + c - a;
        }    
        else if (a < c) {
            h = c - a;
        }    
        else if (a = c) {
            if (d < b) {
                h = 24;
            }
            else {
                h = 0;
            }
        }
        
        int m = d - b;
        
        if (m < 0) {
            M = m + 60;
            h = h - 1;
        }
        else {
            M = m;
        }
        
        printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)", h, M);
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 创建了问题 11月12日

悬赏问题

  • ¥15 爬虫爬取网站的一些信息
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错