猜数字5.3.0
2024-12-29 07:10:05
发布于:浙江
2024年12月15日,作者把4.4.0大改成5.3.0
//猜数字5.3.0:
#include <Windows.h>
#include <bits/stdc++.h>
using namespace std;
string npc;
long double a,b,pg,nc,ng,x;
long long r,l;
char pa = 'y';
void _exit_(){
system("cls");
cout<<"该程序以运行完毕,点击\"确认\"关闭";
MessageBoxA(NULL, "该程序以运行完毕", "确认",MB_ICONWARNING);
}
void _run_(){system("cls");
while (pg != ng){
pg==0;
cout<<l<<"~"<<r<<"猜数字。\n";
cout << "请输入你的猜测:";
cin>>pg;
nc++;
if(pg < ng && pg >= l){
system("cls");
cout<<"太小了,范围在:"<<pg<<"~"<<r<<"\n";
l = pg ;
}else if(pg > ng && pg <= r){
system("cls");
r = pg ;
cout<<"太大了,范围在:"<<l<<"~"<<pg<<"\n";
}else if(pg == ng){
cout<<"恭喜你,猜对了!你一共猜了"<<nc<<"次。\n请输入数字返回。";
cin>>npc;break;
}else if(pg>r || pg<l){
system("cls");
cout<<"不要乱输入,再重申一遍,范围在:"<<l<<"~"<<r<< "\n";continue;
}
}
}int main(){
MessageBoxA(NULL, "该程序由\"https://www.acgo.cn/person/1450113\"编写,改编请在网站私信作者!", "确认",MB_ICONWARNING);
while(1){
system("cls");
cout<<"猜数字游戏!\n如果死循环请重开。\n1.开始\n2.结束\n";
cin>>x;
if(x==1){
system("cls");
cout<<"请输入最小值和最大值:\n";
cin>>a>>b;
l=min(a,b);
r=max(a,b);
if(r!=l && l > INT_MIN+10 && r < INT_MAX-10){
ng = rand() % (r - l) + l;
_run_();
}else{
cout<<"请重输!\n";continue;
}
}else if(x==2){_exit_();return 0;}
}return 0;
}
在Dev-cpp能玩。
感谢你说得对但是骗分启动提供1.1.0版本
感谢复仇者_童帅ด้้(不加团队提供4.4.0版本
输入不要超过2^60就不会有bug。
可能有bug,待提出。
全部评论 4
rand() % r + l
?
如果l与r差距小,这玩意会出界的吧2024-11-09 来自 广东
1好像是,目前没办法解决。
无奈无奈
无奈
无奈
无奈
无奈
无奈
无奈
2024-11-09 来自 浙江
0改成
rand() % (r - l) + l
就行了(再加个特判保证l不等于r)2024-11-09 来自 广东
0好像
2024-11-09 来自 浙江
0
不行,笑死我了没做边界判断,导致乱输数字竟然可以变成边界?
#include <Windows.h> #include <bits/stdc++.h> using namespace std; void pga() { system("cls"); int a=0,b=0,l=0,r=0; srand(static_cast<unsigned int>(time(0))); cout<<"猜数字游戏!\n"<<"请输入最小值和最大值:\n"; cin>>a>>b; l=min(a,b);r=max(a,b); int pg = 0,nc = 0,ng = rand() % r + l; system("cls"); cout<<l<<"~"<<r<<"猜数字。\n"; while (pg != ng) { cout << "请输入你的猜测:"; cin >> pg; nc++; if(pg < ng && pg > l){ cout << "太小了,范围在:"<<pg<<"~"<<r<<endl; l = pg ; }else if(pg > ng && pg < r){ cout << "太大了,范围在:"<<l<<"~"<<pg<<endl; r = pg ; }else if(pg <= l || pg >= r){ cout << "不要乱输入,再重申一遍,范围在:" << l << "~" << r << "\n"; }else{ cout << "恭喜你,猜对了!你一共猜了" << nc << "次。" << endl; } } }int main() { char pa = 'y'; while (pa == 'y') { pga(); cout << "你想再玩一次吗?(y/n): "; cin >> pa; }system("cls"); MessageBoxA(NULL, "猜数字已运行完毕", "关闭",MB_ICONWARNING); }
修改了一下加了下边界条件
2024-08-19 来自 浙江
1在?
2024-08-30 来自 浙江
0报错:
未命名1 In function 'int main()':
35 72 未命名1 [Error] expected '}' at end of input
28 13 未命名1 [Note] to match this '{'
C:\Users\Administrator\Desktop\未命名1.cpp In function 'int main()':
35 72 C:\Users\Administrator\Desktop\未命名1.cpp [Error] expected '}' at end of input
28 13 C:\Users\Administrator\Desktop\未命名1.cpp [Note] to match this '{'2024-08-19 来自 浙江
0缺划括号了呗,鼠标点点花括号旁边会显示对应的,感觉歪了就添一个
2024-08-19 来自 上海
0大概率你复制错了,我这里没问题
2024-08-19 来自 上海
0哦,现在好了。
2024-08-19 来自 浙江
0
有帮助,赞一个