My name is IKUN(已开学) 2023-08-05 22:24 采纳率: 75%
浏览 5

C++刷题时遇到的错误

这个怎么弄啊,只有83分。。

在每一个慧星后都有一个飞碟。这些飞碟时常收集地球上的忠诚支持者。飞碟每次出行都只能带走一组支持者。因此,飞碟们需要一种方案提前知道哪个小组会被带走。每个慧星都有一个名字,通过慧星名字来决定这个小组是不是被带走的那个特定的小组。你的任务是写一个程序,通过小组名和慧星名来确定能否被飞碟带走。
小组名和慧星名都以下列方式转换成一个数字:最终的数字就是名字中所有字母的积,其中A是1,B是2,Z是26.例如USACO小组就是21 19 1 3 15等于17955(中间都是乘法,被csdn不给重复)。如果小组的数字模47等于彗星的数字模47,那么这个小组就会被带走。
写一程序,如果小组可以带走,输出“GO”,否则输出“STAY”.

我的:

#include <bits/stdc++.h>
using namespace std;
char a[100000],b[100000];
int main(){
    int i=0,s1=1,s2=1;
    bool flag=true;
    while((a[i]=getchar())!='\n'){
        i++;
    }
    for(int j=0;j<i;j++){
        s1*=a[j]-80;
    }
    i=0;
    while((b[i]=getchar())!='\n'){
        i++;
    }
    for(int j=0;j<i;j++){
        s2*=b[j]-80;
    }
    if(s1%47==s2%47){
        cout<<"GO";
    }
    else{
        cout<<"STAY";
    }
}

最后一个点是AW,数据是:
Input:

FPW
MYWW

Output:

STAY

Answer:

GO

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-06 08:32
    关注

    【以下回答由 GPT 生成】

    问题原因: 在计算小组和慧星的数字时,使用的是*=运算符将乘法结果赋给s1s2。但是在每次循环中,先乘法再赋值可能会导致结果不正确。另外,因为计算的起始值为1,所以无论输入的小组或慧星是什么,结果永远都是1。这就是为什么无论输入什么,结果都是"STAY"的原因。

    解决方案: - 将起始值调整为小组或慧星的第一个字符对应的数字。例如,将s1s2的起始值设为a[0]-80b[0]-80。 - 在乘法操作符前使用一个括号来确保先进行乘法运算,再进行赋值操作。

    以下是修复后的代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    char a[100000], b[100000];
    
    int main() {
        int i=0,s1=a[0]-80,s2=b[0]-80;
        bool flag=true;
    
        while((a[i]=getchar())!='\n'){
            i++;
        }
    
        for(int j=0; j<i; j++){
            s1 *= (a[j]-80);
        }
    
        i=0;
    
        while((b[i]=getchar())!='\n'){
            i++;
        }
    
        for(int j=0; j<i; j++){
            s2 *= (b[j]-80);
        }
    
        if(s1%47==s2%47){
            cout<<"GO";
        }
        else{
            cout<<"STAY";
        }
    }
    

    应该是这样修改后,运行程序会得到正确的输出"GO"。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 8月5日
  • 修改了问题 8月5日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker
  • ¥15 数学建模大赛交通流量控制
  • ¥15 为什么我安装了open3d但是在调用的时候没有报错但是什么都没有发生呢
  • ¥50 paddleocr最下面一行似乎无法识别
  • ¥15 求某类社交网络数据集
  • ¥15 靶向捕获探针方法/参考文献