2401_84401465 2025-04-24 18:46 采纳率: 71.4%
浏览 13

为什么我的代码用蓝桥杯测试十个只能通过四个,我感觉没什么问题呀

小明周一到周五刷a题,周六周天刷b题,假如小明从周一开始刷题,那么多少天后才能刷大于等于n道题


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  // 请在此输入您的代码
  int a,b,n;
  scanf("%d %d %d",&a,&b,&n);
  int ans=0;
  int num=0;
  int day=1;
  while(1){
    if(day<=5){
      num+=a;
      ans++;
    }
    else if(day>5){
    num+=b;
    ans++;
    }
    if(day==7)
    day=1;
    if(num>=n)
    break;
    day++;
  }
  printf("%d",ans);
  return 0;
}


  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-04-24 18:46
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解答

    你的代码可能存在一些问题,以下是一些可能的原因:

    1. 你的代码没有正确地实现小明刷题的逻辑。小明每天刷a题和b题的数量应该是固定的,但是你的代码没有考虑这个问题。
    2. 你的代码没有正确地计算小明刷题的总数量。小明刷题的总数量应该是a题和b题的总数量,但是你的代码没有正确地计算这个数量。

    以下是一个可能的解决方案:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
        int a, b, n;
        scanf("%d %d %d", &a, &b, &n);
    
        int days = 0;
        int total = 0;
    
        while (total < n) {
            days++;
            total += a;
            if (total >= n) break;
            total += b;
        }
    
        printf("%d\n", days);
    
        return 0;
    }
    

    这个代码首先读取a题和b题的数量,然后使用while循环计算小明刷题的总数量。每天小明刷a题和b题的数量都是固定的,所以我们可以使用一个while循环来计算总数量。最后,我们输出小明刷题的总天数。

    代码解释

    • int days = 0;:初始化小明刷题的总天数为0。
    • int total = 0;:初始化小明刷题的总数量为0。
    • while (total < n) {:使用while循环计算小明刷题的总数量,直到总数量大于等于n。
    • days++;:每天小明刷题的总天数加1。
    • total += a;:小明刷a题的数量加到总数量中。
    • if (total >= n) break;:如果总数量大于等于n,退出while循环。
    • total += b;:小明刷b题的数量加到总数量中。
    • printf("%d\n", days);:输出小明刷题的总天数。

    这个代码应该可以正确地计算小明刷题的总天数。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月24日