Найти количество элементов матрицы больших первого элемента столбца с номером K - C (СИ)
Формулировка задачи:
Напишите программу которая задаёт случайным образом матрицу n*m элементов. Выводит матрицу на экран. Находит и выводит на экран количество элементов матрицы больших первого элемента столбца с номером K. Значения n,m,k вводятся с клавиатуры. Написал код, который задаёт матрицу и выводит на экран. Помогите выполнить второе задание, пожалуйста. На СИ или C++, не важно
Мой код:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
system("chcp 1251");
srand(time(NULL));
int n, m, i, j, k;
int** x;
printf("Введите кол-во строк матрицы: ");
scanf("%d", &n);
printf("Введите кол-во столбцов матрицы: ");
scanf("%d", &m);
x = (int**)malloc(sizeof(int) * n);
for (i = 0; i < n; i++)
{
x[i] = (int*)malloc(sizeof(int) * m);
for (j = 0; j < m; j++)
{
x[i][j] = rand() % 10;
printf("%4d ", x[i][j]);
}
printf("\n");
}
system("PAUSE");
return 0;
}Решение задачи: «Найти количество элементов матрицы больших первого элемента столбца с номером K»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
system("chcp 1251");
srand(time(NULL));
int n,m,i,j,k;
int** x;
printf ("Введите кол-во строк матрицы: ");
scanf("%d",&n);
printf ("Введите кол-во столбцов матрицы: ");
scanf("%d",&m);
x=(int**)malloc(sizeof(int)*n);
for(i=0;i<n;i++) {
x[i] = (int*)malloc(sizeof(int)*m);
for(j=0;j<m;j++) {
x[i][j]=rand()%10;
printf("%4d ",x[i][j]);
}
printf("\n");}
int c=0;
printf("введите номер столбца k: ");
scanf("%d",&k);
for(i=0;i<n;i++) {
for(j=0;j<m;j++) {
if (x[0][k-1]<x[i][j]) {
c++;
}
}
}
printf("ответ: %d",c);
system("PAUSE");
return 0;
}
Объяснение кода листинга программы
Вот что делается в этом коде:
- Включаются необходимые заголовочные файлы, в данном случае, файлы для работы с консолью и для генерации случайных чисел.
- Задаются начальные значения переменных. В данном случае, первая строка инициализирует переменные, которые используются в системе ввода-вывода, а вторая строка инициализирует переменную, используемую в функции rand().
- Создается двумерный массив. В данном случае, массив инициализируется случайными числами от 0 до 9.
- Пользователю предлагается ввести номер столбца k.
- Перебираются все элементы матрицы. Если элемент в нулевой строке и столбце k-1 меньше, чем элемент в текущей строке и столбце k, то переменная c увеличивается на 1.
- Выводится результат.
- Завершается программа.