你能说出这是什么错误吗?它编译并运行正常,但程序不会结束。
我正在使用dev c ++。代码是:
#include <iostream>
using namespace std;
main()
{
char num;
again:
int usr;
float area;
cout << "\nEnter 1 to calculate area of rectangle\n";
cout << "Enter 2 to calculate area of trapezoid\n";
cout << "\nEnter your choice: ";
cin >> usr;
if (usr == 1)
{
double width, length;
cout << "Enter the width of rectangle: ";
cin >> width;
cout << "Enter the length of rectangle: ";
cin >> length;
area = length * width;
cout << "The area of rectangle is: " << area;
}
if (usr == 2) {
double base1, base2, height;
cout << "Enter the base 1 of trapezoid: ";
cin >> base1;
cout << "Enter the base 2 of trapezoid: ";
cin >> base2;
cout << "Enter the height of trapezoid: ";
cin >> height;
area = (((base1 + base2) / 2) * height);
cout << "The area of trapezoid is: " << area;
}
cout << "\n\ndo you want to do another calculation?";
cin >> num;
{
goto again;
}
if (num == 'y')
{
goto again;
}
if (num == 'n') {
exit(0);
}
}
答案 0 :(得分:5)
永远不会使用goto
,除非你有充分的理由(你没有)。
cin >> num;{
goto again;
}
我不知道你为什么这么写,但这就是问题所在。如果您使用正确的格式编写它,它将看起来像这样
cin >> num;
{
goto again;
}
括号{}
只是改变了范围(对变量等有用),但没有做任何其他事情。 goto again;
仍然被执行,所以你会遇到无限循环。
此后的2个条件没问题,因此只需删除{ goto again; }
即可“修复”您的问题。
答案 1 :(得分:0)
删除代码中的第44行
你的代码
cin >> num;{
goto again;
}
解决方案删除
再次转到
cin >> num;{
}
这将解决您的问题