Для каждого столбца матрицы выяснить, является ли он "хорошим" - C (СИ)

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

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

Дана таблица

N × N

, заполненная целыми числами. Петр Первый считает столбец хорошим, если тот содержит число

Х

. Требуется для каждого столбца выяснить, является ли тот хорошим.

Входные данные

В первой

строке число

X

, не превышающее по модулю 2*109.

Во второй

строке число

N

(1 <= N <= 100), В следующих N строках по N целых чисел, не превышающих по модулю 2*109 – числа в ячейках таблицы.

Выходные данные

Для каждого столбца

выведите YES

, если в нем есть число Х, и

NO в противном случае

. (Каждый ответ с новой строки) Вот прога. Можете объяснить чего я не учёл? половина тестов не проходит(
Листинг программы
  1. #include<stdio.h>
  2. main()
  3. {
  4. int N,X,i,j;
  5. scanf("%d%d",&X,&N);
  6. int mas[N],l;
  7. for(i=0;i<N;i++)
  8. for(j=0;j<N;j++)
  9. {
  10. scanf("%d",&l);
  11. if(l==X) mas[j]=1;
  12. }
  13. for(i=0;i<N;i++) if(mas[i]==1) printf("YES\n"); else printf("NO\n");
  14. }

Решение задачи: «Для каждого столбца матрицы выяснить, является ли он "хорошим"»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     int x,n,i,j,b=0;
  9.     while(1)
  10.     {
  11.         printf("enter x (x <= 2*109): ");
  12.         scanf("%d",&x);
  13.         if(x<=2*109)
  14.             break;
  15.         else
  16.             printf("wrong x...try again!");
  17.     }
  18.     while(1)
  19.     {
  20.         printf("enter N (1 <= N <= 100): ");
  21.         scanf("%d",&n);
  22.         if(n>=1 || n<=00)
  23.             break;
  24.         else
  25.             printf("wrong n...try again!");
  26.     }
  27.     int matx[n][n];
  28.     for(i=0;i<n;i++)
  29.     {
  30.         for(j=0;j<n;j++)
  31.         {
  32.             matx[i][j] = rand()%10+1;
  33.             if(matx[j][i]==x)
  34.                 b=1;
  35.         }
  36.         if(b)
  37.             printf("column: %d good: %s \n",i,"YES");
  38.         else
  39.             printf("column: %d good: %s \n",i,"NO");
  40.         b=0;
  41.     }
  42.     return 0;
  43. }

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

  1. Включаем необходимые заголовочные файлы
  2. Инициализируем генератор случайных чисел
  3. Вводим значения переменных x и n с помощью функции scanf
  4. Проверяем корректность введенных значений для переменных x и n
  5. Создаем двумерный массив matx размерностью n на n
  6. Заполняем массив matx случайными числами от 1 до 10 с помощью функции rand()
  7. Проходим по всем элементам массива matx
  8. Проверяем, является ли элемент в позиции (i,j) равным x
  9. Если да, то переменной b присваиваем значение 1
  10. После завершения внутреннего цикла, проверяем значение переменной b
  11. Если b равно 1, то выводим сообщение о том, что столбец хороший
  12. Если b равно 0, то выводим сообщение о том, что столбец не хороший
  13. Возвращаем 0, чтобы указать, что программа успешно завершилась

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


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

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

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы