ღ旅途ღ 2023-07-06 21:50 采纳率: 100%
浏览 29
已结题

蒜头君的减肥计划(贪心)

https://www.jisuanke.com/problem/T3855
我代码:


#include<bits/stdc++.h>
using namespace std;
int main()
{
    long int n,a[100001]={0},b[100001]={0},c[100001],o=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i]>>b[i];
    }
    for(int i=0;i<=n;i++)
    {
        for(int j=i+1;j<=n;j++)
        {
            c[i]+=a[j];
        }
        if(i>0)
        {
            for(int j=0;j<=i;j++)
            c[i]+=b[j];
        }
    }
    for(int i=0;i<=n-1;i++)
    o+=c[i]^c[i+1];
    cout<<o;
} 

麻烦看下,谢谢

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-08 23:50
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 以下回答来自chatgpt:

      根据参考资料中的代码,问题出现在第13行的代码中,两次使用了scanf函数来获取输入,但是第二次使用scanf函数时,没有传入正确的参数。在这里,由于c是一个字符,必须使用%c来接收输入的字符,所以需要把第13行的代码修改为scanf("%c", &c);。此外,我还注意到第24行的空格缩进不正确,需要修复。

      修改后的代码如下:

      #include <stdio.h>
      #include <string.h>
      
      int main(void)
      {
          int sum, a, b;
          char c;
          while (scanf("%d", &a) != EOF)
          {
              sum = a;
              while (scanf(" %c", &c) != EOF) // 修改了这一行的代码
              {
                  scanf("%d", &b);
                  if (c == '+')
                      sum = sum + b;
                  else if (c == '-')
                      sum = sum - b;
                  else if (c == '*')
                      sum = sum * b;
                  else if (c == '/')
                      sum = sum / b;
                  else if (c == '=')
                      break;
              }
              printf("%d\n", sum);
          }
          return 0;
      }
      

      请注意第13行的代码中的空格,它是为了跳过之前输入的换行符。这是因为在之前的输入中,按下回车键后会留下一个换行符,而字符输入%c会读取该换行符。通过在%c前面添加一个空格,可以确保scanf读取到正确的字符。

      希望这个修改能解决你的问题。如果还有其他问题,请随时向我提问。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月10日
  • 已采纳回答 7月10日
  • 修改了问题 7月7日
  • 创建了问题 7月6日

悬赏问题

  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 用大厂网站防红自己网站
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥20 我的是道格手机,重置后屏幕右上角出现红色字的未写入tee key 和未写入google key请问怎么去掉啊
  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?