怎么没输出???(神犇求助)

B2092 开关灯

vector_STL_ @ 2024-08-24 11:16:01

#include<bits/stdc++.h>
using namespace std;
bool a[114514];
int main(){
    int n,i;
    cin>>n;
    for(i=1;i<=n;i++){
        a[i]=true;
        for(int j=1;j<=n;j++){
            if(j>=n&&j%n==0){
                if(a[i]==true){
                    a[i]=false;
                }
                else if(a[i]==false){
                    a[i]=true;
                }
            }
        }
        if(a[i]=false){
            cout<<i;
        }
    }

    return 0;
}

by Grammar__hbw @ 2024-08-24 11:17:18

@zch120526 if(a[i]=false)永远返回false,同时还把a[i]变成false,所以显然没有输出。请使用if(a[i]==false)


by Alex_smy @ 2024-08-24 11:18:47

@zch120526 正解:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    for (int i=1;i*i<=n;i++){
        cout<<i*i<<" ";
    }
    return 0;
}

求关


by szrgjxms @ 2024-08-24 11:19:08

@Grammar__hbw 这个应该为给 a[i] 赋值为 false 并且赋值完后判断 a[i] 是否为 true 吧


by Alex_smy @ 2024-08-24 11:21:06

@szrgjxms bool 类型数组初始值默认为 false


by szrgjxms @ 2024-08-24 11:22:07

@Alex_smy 那是全局变量,你定个局部试试?!


by szrgjxms @ 2024-08-24 11:22:37

@Alex_smy 而且貌似你没有听懂我的意思


by Grammar__hbw @ 2024-08-24 11:24:26

@szrgjxms 赋值语句有返回值。(a[i]=false)的值为false。

你的解释也可以接受。


by sunxinzhe @ 2024-08-24 11:24:56

大哥,if(a[i]=false),c++判断是否相等使用==,=是赋值


by szrgjxms @ 2024-08-24 11:25:56

@Grammar__hbw 好的


by vector_STL_ @ 2024-08-24 12:40:25

现在更乱了qwq


| 下一页