Printf в цикле выводит сообщение несколько раз - C (СИ)
Формулировка задачи:
Есть код: Вот цикл с матрицей размером, к примеру, 2х2. У меня сообщение принтфа выводит 4 раза слитно. Как сделать, чтоб выводило один раз?
for (i=0; i<n; i++) for (j=0; j<n; j++) { if (a[i][j]!=0) printf ("Парам-пам-пам-пам"); else printf ("лыфрващшуырв"); }
Решение задачи: «Printf в цикле выводит сообщение несколько раз»
textual
Листинг программы
flag = 1; for(i = 0; i < n && flag; i++) { for(j = 0; j < n && a[i][j] != 0; j++) ; flag = (j >= n); } printf("%s", flag ? "no": "yes");
Объяснение кода листинга программы
- Объявляется переменная
flag
со значением 1. - Запускается цикл
for
, который будет выполняться до тех пор, пока условиеi < n
истинно и значение переменнойflag
не изменится. - Внутри цикла
for
запускается еще один циклfor
, который будет выполняться до тех пор, пока условиеj < n
истинно и значение элемента массиваa[i][j]
не станет равным 0. - Внутри второго цикла
for
происходит пропуск (пустая команда;
). - После завершения второго цикла
for
значение переменнойflag
устанавливается равнымj >= n
. - После завершения первого цикла
for
выводится сообщение с помощью функцииprintf
. Сообщение будетno
, если значение переменнойflag
равно 0, иyes
, если значение переменнойflag
не равно 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д