2013-04-19 2 views
0

У меня возникла эта проблема: когда я пытаюсь напечатать массив с 2 для циклов, ничего не происходит, пустой экран. Когда я добавляю printf, предшествующий циклу (что-то вроде printf("1");), печать цикла отображается в ходе выполнения. Код:Printf in for loop не работает без printf, предшествующего вне цикла

for(j=0;j<i;j++){ 
    printf("\n"); 
    for(k=0;k<i;k++){ 
     printf("%6d",*(polje+j*i+k)); 
    } 
} 

не только программа не печатает цикл, он говорит x.exe перестал работать, если я не использую другой printf вне цикла.

+0

В основном это связано с буферизированным выходом. Проблема \ n в printf решает проблему. Существуют и другие способы принудительного форматирования без буферизации. – anishsane

+2

печать 2D массив? – BLUEPIXY

+1

Вероятность того, что печать во внутреннем цикле не появится до вывода новой строки. Как правило, вы ставите новую строку после внутреннего цикла: 'for (int j = 0; j

ответ

0

Попробуйте это:

for(j=0;j<i;j++){ 
    printf("\n"); 
    for(k=0;k<i;k++){ 
     printf("%6d",(polje+j*i+k)); 
    } 
} 

я удалил * во втором Printf .. Это было что-то умножив ой с правой стороны

+0

Это * был указателем –

1

Попробуйте позвонить fflush(stdout); после второго printf.

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