c++编程的小问题,请看一下哪里错了

图片如下图

img


代码如下

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> status(n);
    for (int i = 0; i < n; i++) {
        cin >> status[i];
    }
    int total_stars = 0;
    int current_stars = 0;
    for (int i = 0; i < n; i++) {
        if (status[i] == 1) {
            current_stars++;
        } else {
            current_stars = 0;
        }
        total_stars += current_stars;
        if (total_stars >= 50) {
            break;
        }
    }
    if (total_stars >= 50) {
        cout << "Yes" << endl;
    } else {
        int remaining_stars = 50 - total_stars;
        cout << remaining_stars << endl;
    }
    return 0;
}


我很想知道我错哪里的,感谢指点

这代码一看就是GPT写的,既然你觉得GPT很好很强大,那么你可以继续追问。

【以下回答由 GPT 生成】

这段代码没有明显的错误,但是可能存在逻辑上的问题。以下是该代码的解释:

首先,代码中使用了一个输入变量 n,表示用户将输入的数据个数。然后,创建了一个容器 vector<int> status(n),用于存储用户输入的数据。接下来,通过循环将用户输入的数据存储到容器中。

代码中的另一个循环用于计算满足一定条件时的总星数。在每次迭代中,根据 status[i] 的值,如果等于 1,则 current_stars 增加 1,否则将 current_stars 重置为 0。然后,将 current_stars 的值累加到 total_stars 上。最后,如果 total_stars 达到或超过 50,就退出循环。

最后的条件判断用来确定是否达到了 50 颗星。如果达到了,输出 "Yes";否则,计算剩余的星数,并输出。

总体来说,代码看起来是合理的。如果你遇到了某些问题或出错信息,请提供更具体的错误描述,以便我可以更好地帮助你。



【相关推荐】



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