NGC*_*543 2 c++ arrays loops conditional-statements
我有六个组件数组,我想确保如果用户正在初始化组件的值,他/她将不会给出2个或更多相同的数字.
while (tab[i] == tab[i - 1] || tab[i] == tab[i - 2] || tab[i] == tab[i - 3] || tab[i] == tab[i - 4] || tab[i] == tab[i - 5])
{
cout << "Liczby nie moga sie powtarzac! Sproboj jeszcze raz: ";
cin >> tab[i];
}
Run Code Online (Sandbox Code Playgroud)
我试着这样做:
while (for (int m = 1; m < 6; ++m)
{
tab[i] == tab[i - m];
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用:/
你可以使用std::find:
while (std::find(&tab[i - 5], &tab[i], tab[i]) != &tab[i])
{
}
Run Code Online (Sandbox Code Playgroud)
但是,就像你的代码一样,这只适用于第六个数字.
要读取六个没有重复的数字,你可以这样做:
int tab[6] = {0};
int i = 0;
while (i < 6) {
do {
cin >> tab[i];
} while (std::find(tab, tab + i, tab[i]) != tab + i);
i++;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |