Для каждого столбца матрицы выяснить, является ли он "хорошим" - 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, чтобы указать, что программа успешно завершилась