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.