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

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

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

Дана таблица

N × N

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

Х

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

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

В первой

строке число

X

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

Во второй

строке число

N

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

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

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

выведите YES

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    srand(time(NULL));
    int x,n,i,j,b=0;
    while(1)
    {
        printf("enter x (x <= 2*109): ");
        scanf("%d",&x);
        if(x<=2*109)
            break;
        else
            printf("wrong x...try again!");
    }
    while(1)
    {
        printf("enter N (1 <= N <= 100): ");
        scanf("%d",&n);
        if(n>=1 || n<=00)
            break;
        else
            printf("wrong n...try again!");
    }
    int matx[n][n];
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            matx[i][j] = rand()%10+1;
            if(matx[j][i]==x)
                b=1;
        }
        if(b)
            printf("column: %d good: %s \n",i,"YES");
        else
            printf("column: %d good: %s \n",i,"NO");
        b=0;
    }
    return 0;
}

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

  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
Похожие ответы