代码修改int main() { vector<string> nm; for(int i=0;i<5;i++) { string name; cin>>name; nm.push_back(name); } int num; cout<<"inpt first num:"; cin>>num; int i=0; while(true) { num++; int temp; cout<<nm[i]<<" next input:"; cin>>temp; //轮流输入下一个数,是7则输入0,否则输入该数 if((num%7==0 || num%10==7) && temp!=0) { cout<<nm[i]<<" :error"; break; } if(!(num%7==0 || num%10==7) && temp!=num) { cout<<nm[i]<<" :error"; break; } i++; if(i==nm.size()) i=0; } return 0; }
时间: 2024-01-16 16:03:09 浏览: 157
java中for(int i= 0; i<=10;i=i++)System.out.print(i);为什么无限输出0
好的,我已经将代码修改为以下版本:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<string> nm;
for (int i = 0; i < 5; i++) {
string name;
cin >> name;
nm.push_back(name);
}
int num;
cout << "请输入第一个数字:";
cin >> num;
int i = 0;
while (true) {
num++;
int temp;
cout << nm[i] << "请输入下一个数字:";
cin >> temp;
if ((num % 7 == 0 || num % 10 == 7) && temp != 0) {
cout << nm[i] << "输入错误!" << endl;
break;
}
if (!(num % 7 == 0 || num % 10 == 7) && temp != num) {
cout << nm[i] << "输入错误!" << endl;
break;
}
i++;
if (i == nm.size()) {
i = 0;
}
}
return 0;
}
```
这个版本的代码也是用 `vector` 来保存五个人的姓名。游戏开始时,我们需要输入开始的数字 `num`,然后进入一个循环。在循环中,我们首先将 `num` 加一,然后输出当前轮到的人的姓名,让他输入下一个数字。如果输入的数字符合规则(见下面的说明),则让下一个人输入数字,否则输出错误信息并结束游戏。
这个游戏的规则是这样的:从第一个数字开始,每次加一,如果加一后的数字可以被 7 整除,或者个位数是 7,那么这一轮的玩家必须输入 0;否则,这一轮的玩家必须输入加一后的数字。如果一个玩家输入错误的数字,游戏结束。
希望这个修改后的代码能够满足你的需求!
阅读全文