Добрый день. Помогите пожалуйста помочь понять, что именно вызывает ошибку в коде. C# Windows Forms
private void button1_Click(object sender, EventArgs e)
{
int t = Convert.ToInt32(textBox1.Text);
int r = Convert.ToInt32(textBox2.Text);
int kil1 = 0;
int kil2 = 0;
int kil3 = 0;
int kil4 = 0;
int sum1 = 0;
int sum2 = 0;
int sum3 = 0;
int sum4 = 0;
int a = 2 * t * r; int b = t + r;
for (int i = 1; i <= t; i++)
{
if (t / i == 0)
{
kil1++;
sum1 += i;
}
}
for (int j = 1; j <= r; j++)
{
if (r / j == 0)
{
kil2++;
sum2 += j;
}
}
for (int k = 1; k <= a; k++)
{
if (a / k == 0)
{
kil3++;
sum3 += k;
}
}
for (int l = 1; l <= b; l++)
{
if (b / l == 0)
{
kil4++;
sum4 += l;
}
}
label1.Text = Convert.ToString(kil1);
label2.Text = Convert.ToString(kil2);
label3.Text = Convert.ToString(sum1);
label4.Text = Convert.ToString(sum2);
label5.Text = Convert.ToString(kil3);
label6.Text = Convert.ToString(sum3);
label7.Text = Convert.ToString(kil4);
label8.Text = Convert.ToString(sum4);
}
Answers & Comments
Ответ:
Добрый день, в коде возникает ошибка в следующих строках:
if (t / i == 0)
if (r / j == 0)
if (a / k == 0)
if (b / l == 0)
Вместо оператора деления "==" использован оператор сравнения. Вместо этого нужно использовать оператор остатка от деления "%", чтобы проверить, является ли результат деления равным нулю.
Исправленный код будет выглядеть так:
if (t % i == 0)
if (r % j == 0)
if (a % k == 0)
if (b % l == 0)
Также рекомендуется добавить проверку на ноль перед делением, чтобы избежать возможной ошибки деления на ноль. Например, перед каждым делением добавьте следующую проверку:
if (i != 0)
if (j != 0)
if (k != 0)
if (l != 0)
Это позволит избежать возможной ошибки деления на ноль, если пользователь введет ноль в текстовые поля textBox1 и textBox2.