猫史档案馆


c++大佬在哪里?

用户:KJI夕狌KJI夕狌查看:1 回复:6 评论:1 创建时间:2024-02-05T21:18:45


#include<bits/stdc++.h>
using namespace std;
int main(){
    int q,w,e;
    srand(time(0));
    q=rand()%1000+1;
    e=1;
    do{
        cin>>w;
        if (w>q&&w!=2010)
            cout<<"too big"<<endl;
        if (w<q)
            cout<<"too 喵all"<<endl;
        if (w=2010)
            cout<<q<<endl;
        e+=1;
    }while(q!=w);
    cout<<"you are right. try"<<e<<endl;
    return 0;
}

为啥我输完2010后,跳出正确答案后

我输入正确答案它却跳不出循环?


回复

上一页1 页 / 共 1下一页
初夏晴雨初夏晴雨

没太看懂,能说得清楚点嘛

点赞1


评论


NaitOadNaitOad

e要初始化成0,不然会多一次吧。。?

点赞0


评论


NaitOadNaitOad

其二,w=2010要改成w==2010,你这个的意思是,把w变成2010,然后表达式的结果就是w的值,w就注定是2010,表达式一定成立,所以不管输入啥此表达式都成立,就会一直输出正确答案对吗?

点赞0


评论


NaitOadNaitOad

(求给我的作品点赞)

点赞0


评论


顾雨晨QWQ顾雨晨QWQ

存在一个逻辑错误。当程序检查w是否等于2010时,条件判断语句使用了赋值运算符(=)而不是比较运算符(==)。因此,该条件实际上是在将w设置为2010,而不会进行任何比较操作。由于这个原因,即使您输入了正确的答案,程序也不会退出循环,因为它没有正确地检测到相等的情况。

点赞0


评论


USS米奈希尔之怒USS米奈希尔之怒

#include<bits/stdc++.h>
using namespace std;
int main(){
int q,w,e;
srand(time(0));
q=rand()%1000+1;
e=0;
do{
cin>>w;
if (w>q&&w!=2010)
cout<<"too big"<<endl;
if (w<q)
cout<<"too 喵all"<<endl;
if (w==2010)
cout<<q<<endl;
e+=1;
}while(q!=w);
cout<<"you are right. try"<<e<<endl;
return 0;
}

 

还有你的判断在e之后,所以e的初始值应该为0,不然次数会多一

点赞0


评论