Моя программа получает сообщение об ошибке «Поиск имени изменен для ISO» на «область видимости».

Я делаю программу для проверки дыр в вводе текста пользователем … Отверстия — это такие символы, как ‘A’, ‘B’, ‘P’ и т. Д … Но в цикле появляется ошибка

Я разместил полный код ниже .. Помогите найти ошибку

       #include <iostream>
#include <cstring>
#ifdef __cplusplus__
#include <cstdlib>
#else
#include <stdlib.h>
#endif
using namespace std;
int main()
{
label:
cout << "Enter Number of test Case : ";
int tc;
cin >> tc;
int * hls = new int [tc];
hls = {0};
if(tc > 40)
{
if (system("CLS")) system("clear");
goto label;
}
char *str = new char [tc];
for(int a = 0; a < tc; ++a)
{
cout << "Enter your " << a+1 << "  text : ";
cin >> str[a];
}
for(a = 0; a < tc; ++a) // getting error in this line.
{
for(int b = 0; b < strlen(str[a]); ++b)
{
switch(str[b])
{
case 'A' :
case 'D' :
case 'O' :
case 'Q' :
case 'P' :
++hls[b];
break;
case  'B' : hls[b] += 2;
break;
default :
break;
}
}
}
if (system("CLS")) system("clear");
for(a = 0; a < tc; ++a)
cout << hls[a] << endl;
return 0;
}

-2

Решение

Ваш a не объявляется в области видимости второго цикла for.

a существует только в теле цикла for:

for(int a = 0; a < tc; ++a)
{
cout << "Enter your " << a+1 << "  text : ";
cin >> str[a];
}

Сейчас a больше не существует, но вы все равно пытаетесь его использовать:

for(a = 0; a < tc; ++a) // getting error in this line.

(Вы также попробуете это использовать позже)

Либо объявить int a; в теле main() поэтому он остается в области видимости, или (лучше) просто объявлять его в каждом последующем цикле for, как вы это делали в первом цикле.

Есть и другие проблемы с кодом, но вы спросили об этом. 🙂

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]