2016-01-07 3 views

ответ

0

Вы не обрабатываете случай, когда i может быть 0 (деление на 0), так что b% i не определено. Вы можете решить это, пройдя следующим образом:

if (i==0) continue; 
+0

Спасибо, сейчас работает. – tomo1tomic

3
for(int i=a;i<=b;i++) 
{ 
    if (b%i==0) 
    { 
     cout << i << " "; 
    } 
} 

Даст деление на ноль если i == 0.

Вы должны проверить ввод, или значение i, например:

for(int i=a; i<=b; i++) 
{ 
    if (i > 0 && b%i==0) 
    { 
     cout << i << " "; 
    } 
} 

Если i == 0, b%i==0 не будет оцениваться.

+0

О, полностью забыл об этом! – tomo1tomic

0

Вы должны обрабатывать деление корпуса на «ноль». Когда значение i = 0, код не работает и создает исключение. Вы должны сделать так:

#include <iostream> 
using namespace std; 
int main() 
{ int a, b; 
    cin>>a>>b; 
    for(int i=a;i<=b;i++) 
    { if (i == 0) 
      continue; 
     else if (b%i == 0) 
      cout << i << " "; 

    } 
    return 0; 
} 
Смежные вопросы