#include <iostream>
using namespace std;
int main () {
char arr[7];
char x;
for (int i = 0; i < 7; i++)
{
cin >> arr[i];
}
cin >> x;
for (int i = 0; i < 7; i++)
{
if (x == arr[i])
cout << i << endl;
else {
cout <<"Not found";
break;
}
}
}
这个程序应该接收7个字符并将它们存储在一个数组然后用户必须搜索一个字符,然后程序将打印该字符的索引,否则,它将打印未找到,这个问题在这里是我的时候输入a b c d e f g
然后搜索ie:a
它将打印0
not found
这里发生了什么?我的调试器被窃听了。所以我不能用它。我希望你理解我的问题。如何使其仅打印用户搜索的字符的索引,如果没有找到该程序将打印not found
。
答案 0 :(得分:1)
在下面引用的代码中,如果x != arr[0]
,if
条件在for
循环的第一个转弯中将为false,因此会直接转到else
部分,意味着打印&#34;未找到&#34;和break
。
for (int i = 0; i < 7; i++)
{
if (x == arr[i])
cout << i << endl;
else {
cout <<"Not found";
break;
}
}
正确的方式:
bool found = false;
for (int i = 0; i < 7; i++)
{
if (x == arr[i]) {
cout << i << endl;
found = true;
}
}
if ( !found ) {
cout <<"Not found";
}