Console.WriteLine("Введите диапазон (2 числа через пробел)");
range = (Console.ReadLine().Split(' '));
int s = 0;
int b = getArrayItem(1);
for (int a = getArrayItem(0); a<b+1; a++)
{
if (n % a == 0)
{
s++;
}
}
Console.WriteLine(s);
Console.ReadKey();
}
public int getArrayItem(int item)
{
return Convert.ToInt16(range[item]);
}
}
}
Объяснение:
1 votes Thanks 1
karishapoy14
Спасибо большое за код!!!Но у меня почему-то строка: “if(n%a == 0)”-выделяется желтым и пишет,что это : «попытка деления на нуль»!!??
KnowsUser1
Ну, если указать диапазон от 0, то он будет пытаться делить на ноль. Можно добавить конструкцию try-catch, и если возникает ошибка деления на ноль, просто пропустить итерацию. При сборке программы ошибок возникать не должно, пишу в VS 17, он не даст скомпилить кривой код
karishapoy14
А как добавить и куда эту конструкцию try-catch???
karishapoy14
По возможности,пожалуйста отредактируйте данный написанный код и допишите туда эту конструкцию
KnowsUser1
Судя по всему, раз на ответе уже стоит "спасибо" от автора вопроса, редактировать его нельзя, попробую объяснить. Внутри цикла for() { } добавьте ключевое слово try { }, и в фигурные скобки поместите блок if. Ниже, после закрытия скобок блока try напишите ключевое слово catch { }, в фигурные скобки поместите инструкцию continue. Это простейший вид конструкции обработки исключений, он просто будет пропускать итерацию в случае возникновения ошибки. try { if (n % a == 0) { s++; } } catch { continue; }
Answers & Comments
Ответ:
using System;
namespace Global
{
class Program
{
public string[] range = new string[2];
static void Main(string[] argv)
{
Program Obj = new Program();
Obj.Calculate();
}
public void Calculate()
{
string iN = Console.ReadLine();
int n = Convert.ToInt16(iN);
Console.WriteLine("Введите диапазон (2 числа через пробел)");
range = (Console.ReadLine().Split(' '));
int s = 0;
int b = getArrayItem(1);
for (int a = getArrayItem(0); a<b+1; a++)
{
if (n % a == 0)
{
s++;
}
}
Console.WriteLine(s);
Console.ReadKey();
}
public int getArrayItem(int item)
{
return Convert.ToInt16(range[item]);
}
}
}
Объяснение:
try
{
if (n % a == 0)
{
s++;
}
}
catch
{
continue;
}