Для каждого столбца матрицы выяснить, является ли он "хорошим" - 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;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Инициализируем генератор случайных чисел
- Вводим значения переменных x и n с помощью функции scanf
- Проверяем корректность введенных значений для переменных x и n
- Создаем двумерный массив matx размерностью n на n
- Заполняем массив matx случайными числами от 1 до 10 с помощью функции rand()
- Проходим по всем элементам массива matx
- Проверяем, является ли элемент в позиции (i,j) равным x
- Если да, то переменной b присваиваем значение 1
- После завершения внутреннего цикла, проверяем значение переменной b
- Если b равно 1, то выводим сообщение о том, что столбец хороший
- Если b равно 0, то выводим сообщение о том, что столбец не хороший
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д