OriginalGriff
Поставьте фигурные скобки вокруг вашего кода обращения:
#include<iostream>
#include<string>
int main()
{
std::string name;
int a;
std::cout<<"welcome please enter you name below"<<std::endl;
std::cin>>name;
std::cout<<"hey ";
std::cout<<name<<std::endl;
std::cout<<"//choose a for submision//"<<std::endl;
std::cout<<"//choose b for factorial//"<<std::endl;
std::cout<<"you choosed : ";
std::cin>>a;
switch (a)
{
case 1:
{
int limit, result=0;
std::cout<<"enter num = ";
std::cin>>limit;
for(int x=1;x<=limit;x++)
{
result=result+x;
}
std::cout<<"sum of number= "<<result;
break ;
}
case 2:
{
int fact=1,l;
std::cout<<"enter limit";
std::cin>>l;
for(int i=1;i<=l;i++)
{
fact=fact*i;
}
std::cout<<fact;
break;
}
}
}
Цитата:
ошибка <stdin>:27:12: error: не удается перейти от оператора switch к этому случаю label case (2): ^ <stdin>:18:24: Примечание: прыжок обходит инициализацию переменной int limit, результат=0; ^ 1 генерируется ошибка.
Я не понимаю этого с моим компилятором, так что попробуйте переместить
break
вне фигурных скобок:
#include<iostream>
#include<string>
int main()
{
std::string name;
int a;
std::cout<<"welcome please enter you name below"<<std::endl;
std::cin>>name;
std::cout<<"hey ";
std::cout<<name<<std::endl;
std::cout<<"//choose a for submision//"<<std::endl;
std::cout<<"//choose b for factorial//"<<std::endl;
std::cout<<"you choosed : ";
std::cin>>a;
switch (a)
{
case 1:
{
int limit, result=0;
std::cout<<"enter num = ";
std::cin>>limit;
for(int x=1;x<=limit;x++)
{
result=result+x;
}
std::cout<<"sum of number= "<<result;
}
break;
case 2:
{
int fact=1,l;
std::cout<<"enter limit";
std::cin>>l;
for(int i=1;i<=l;i++)
{
fact=fact*i;
}
std::cout<<fact;
}
break;
}
}
Некрасиво, и не должно быть нужно - какой компилятор вы используете?
OriginalGriff
"Это не работает", вероятно, самый бесполезный отчет о проблеме, который мы получаем - и мы получаем его много. Она ничего не говорит нам о том, что происходит или когда это происходит.
Итак, расскажите нам, что он делает, чего вы не ожидали, или не делает, что вы сделали.
Расскажите нам, что вы сделали, чтобы это произошло.
Сообщайте нам о любых сообщениях об ошибках. Скажи нам, где они!
Member 14072628
ошибка: <stdin>:27:12: ошибка: невозможно перейти от оператора switch к этой метке case
дело (2):
^
<stdin>:18:24: Примечание: переход обходит инициализацию переменной
int limit, result=0;
^
1 ошибка генерируется.