• Предмет: Информатика
  • Автор: Diavolhhhh
  • Вопрос задан 3 месяца назад

Добрый день. Помогите пожалуйста помочь понять, что именно вызывает ошибку в коде. 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);

}

Приложения:

Ответы

Ответ дал: markkkk85
1

Ответ:

Добрый день, в коде возникает ошибка в следующих строках:

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.


Diavolhhhh: благодарю
Вас заинтересует