2016-12-11 11 views
-1

Это мой первый вопрос, но этот цикл сбил меня с ума. Я не могу понять, что с ним не так. Он падает в тот момент, когда он входит во второй цикл. Это выглядит прекрасно и имеет смысл, но все равно это не работает. Любая помощь будет оценена. Благодаря!Петля с модулем дает мне ошибку

/** 
Author: Yunus Kulyyev 
Date: 10-Dec-2016 
Description: 
**/ 

#include <iostream> 

using namespace std; 

int main() 
{ 
    for (int x=1; x < 10; x++) 
    { 
     cout << x <<": "; 
     for (int y = 0; y <= x; y++) 
     { 
      if (x%y == 0) 
      { 
      cout << y; 
      } 
     } 
     cout << endl; 
    } 

    return 0; 
} 
+2

На первой итерации, когда 'y == 0', что вы ожидаете, будет значением' x% y'? –

ответ

2

Если второй операнд / или % равен нулю, то поведение не определено . См. Это post в формате SO. В вашей программе для первой итерации внутреннего цикла цикла y = 0 и, следовательно, следующий фрагмент кода приводит к неопределенным действиям.

if (x%y == 0) { 
    cout << y; 
} 
+0

Святая корова! Благодаря! Провел так много времени на эту простую ошибку. –

+0

@YunusKulyyev лучший способ поблагодарить принимает ответ :) –

+0

Прохладный, да, получил это –

 Смежные вопросы

  • Нет связанных вопросов^_^