Printf в цикле выводит сообщение несколько раз - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть код:
for (i=0; i<n; i++)
            for (j=0; j<n; j++)
            {
                if (a[i][j]!=0)
        printf ("Парам-пам-пам-пам");
    else
        printf ("лыфрващшуырв");
            }
Вот цикл с матрицей размером, к примеру, 2х2. У меня сообщение принтфа выводит 4 раза слитно. Как сделать, чтоб выводило один раз?

Решение задачи: «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");

Объяснение кода листинга программы

  1. Объявляется переменная flag со значением 1.
  2. Запускается цикл for, который будет выполняться до тех пор, пока условие i < n истинно и значение переменной flag не изменится.
  3. Внутри цикла for запускается еще один цикл for, который будет выполняться до тех пор, пока условие j < n истинно и значение элемента массива a[i][j] не станет равным 0.
  4. Внутри второго цикла for происходит пропуск (пустая команда ;).
  5. После завершения второго цикла for значение переменной flag устанавливается равным j >= n.
  6. После завершения первого цикла for выводится сообщение с помощью функции printf. Сообщение будет no, если значение переменной flag равно 0, и yes, если значение переменной flag не равно 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы