当我尝试启动我的C ++程序时,它会因错误“5.exe已停止工作”而停止。该程序应该计算池所需的瓷砖数量,如果一侧的瓷砖数量是非圆形数量,则向其添加一行瓷砖。附:抱歉我的英语不好。
#include <iostream>
#include <math.h>
#include <cstdlib>
using namespace std;
int main()
{
int x,y,z;
int a,b;
cout << "Insert dimensions of pool in metres: " << endl;
cin >> x >> y >> z;
cout << "Insert dimensions of tile in centimeters: " << endl;
cin >> a >> b;
a=a/100;
b=b/100;
int brx = 0, brzx = 0, bry = 0, brzy = 0, bxpod = 0, bypod = 0;
if (x%a == 0) {
brx = x / a;
}
else {
brx = x / a + 1;
}
if (z%b == 0) {
brzx = z / b;
}
else {
brzx = z / b + 1;
}
if (y%a == 0) {
bry = y / a;
}
else {
bry = y / a + 1;
}
if (z%b == 0) {
brzy = z / b;
}
else {
brzy = z / b + 1;
}
if (x%a == 0) {
bxpod = x / a;
}
else {
bxpod = x / a + 1;
}
if (y%b == 0) {
bypod = y / b;
}
else {
bypod = y / b + 1;
}
int s = (brx*brzx + bry*brzy) * 2 + bxpod*bypod;
cout << "You need " << s << "tiles." << endl;
system("pause");
return 0;
}
答案 0 :(得分:1)
使用调试器,您可以轻松地在以下内容中找到除以0的除法:
if (x%a == 0) {
brx = x / a;
}
你正在对“a”进行整数除法:
a = a / 100;
因此,如果a低于100,则当转换为int时,a将为0. 10/100 = 0.1 = 0。 你应该使用double而不是int