Консультация № 200133
21.01.2021, 00:17
0.00 руб.
1 4 1
Здравствуйте! У меня возникли сложности с таким вопросом:
составить программу в С++.
Прикрепленные файлы:
60d2cbca70126c71bf4ea2879f40e67b14f40974.jpg

Обсуждение

давно
Студент
402651
154
22.01.2021, 13:36
общий
это ответ
Здравствуйте, svrvsvrv!
Принимайте...
m и n определены как константы в #define....

Приложение:
/*Дан двумерный массив целых чисел размерности m х n (числа m и n определяются как константы).
Составить программу для подсчете количества элементов матрицы, меньших наименьшего значения элементов последнего столбца матрицы.
Для ввод/вывода элементов массива и реализации обработки массива использовать вспомогательные функции.*/
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <clocale> // для русского
#define M 5 // число строк в матрице
#define N 7 // число столбцов в матрице
#define A -50 // диапазон целых чисел матриццы
#define B 50 // от А до В

/* инициализация элементов матрицы a случайными числами в диапазоне
от A до B */
void InitA(int a[][N], int m, int n)
{
int i, j;
for(i = 0; i < m; i++)
for(j = 0; j < n; j++)
a[i][j] = A + rand() % (B - A + 1);
}

/* вывод матрицы на экран */
void PrintA(int a[][N], int m, int n)
{
int i, j;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
printf("%5d", a[i][j]);
printf("\n");
}
printf("\n");
}
/* вычисление наименьшего значения элементов последнего столбца матрицы */
int MinStolb(int a[][N], int m, int n)
{
int i, j, minstol = a[0][0];
for (i = 0; i < m; i++)
{
if(a[i][n-1] < minstol)
{
minstol = a[i][n-1];
}
}
printf("Минимум последнего столбца = %5d\n", minstol);
return minstol;
}
/* вычисление наименьших значений матрицы */
void MinA(int a[][N], int m, int n, int minA)
{
int kol = 0;
for(int j = 0; j < M; j++)
{
minA=a[0][j];
for(int i = 1; i < N; i++)
if(a[i][j] < minA)
minA = a[i][j];
// printf("Минимумы = %5d\n", minA);
kol ++;
}
printf("Количество минималных в матрице= %3d\n", kol);
}
int main( )
{
setlocale(LC_ALL, "RUS");
int a[M][N]; // описание матрицы а - размером M x N
srand(time(NULL));
InitA(a, M, N); // вызов функции инциализации матрицы а
PrintA(a, M, N);// вызов функции печати иходной матрицы
int min = MinStolb(a, M, N); // вызов функции нахождения минм. эл-та последнего столбца
MinA(a,M,N, min); /* вызов функции количества элементов матрицы, меньших наименьшего значения элементов последнего столбца матрицы.*/
system("pause");
return 0;
}
5
в сети
Управляющий
143894
2148
22.01.2021, 13:57
общий
Адресаты:
А почему ты не используешь кнопку "КОД"?
А вместо этого засовываешь текст кода в Приложение.
Такое поведение затруднит тебе движение по карьерной лестнице портала - буду катать на экзаменах.
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Посетитель
399424
894
22.01.2021, 14:26
общий
Адресаты:
Спасибо за Ваш ответ.
Всё дело в том, что мне надо найти количество элементов, которые будут меньше, чем самый малый элемент из последнего столбца. Со столбцом понятно, как находить в нём самый малый элемент. Но как потом вывести количество элементов массива, которые будут меньше этого?
давно
Студент
402651
154
22.01.2021, 14:41
общий
Адресаты:
Доброго...
Вот в этой функции...
/* вычисление наименьших значений матрицы */
void MinA(int a[][N], int m, int n, int minA)
{
int kol = 0;
for(int j = 0; j < M; j++)
{
minA=a[0][j];
for(int i = 1; i < N; i++)
if(a[i][j] < minA)
minA = a[i][j];
// printf("Минимумы = %5d\n", minA);
kol ++;
}
printf("Количество минимальных в матрице= %3d\n", kol);
}
которая вызывается из main
MinA(a,M,N, min); /* вызов функции количества элементов матрицы, меньших наименьшего значения элементов последнего столбца матрицы.*/
где min - вычисление наименьшего значения элементов последнего столбца матрицы ...
Форма ответа