Я уже написал код, но у меня не получается реализовать счетчик, который бы считал количество появления максимального элемента матрицы, не могли бы мне помочь?
#include <stdio.h>
#define N 3
#define M 3
int main() {
int arr[3][3], i, j, max;
srand(time(NULL));
for (i=0; i< N; i++) {
for (j=0; j< M; j++) {
arr[i][j] = rand() % 10;
printf(" |%3d| ", arr[i][j]);
}
printf("\n");
}
for (j=0; j< M; j++)
printf(" ----- ");
printf("\n");
for (j=0; j< M; j++) {
max = arr[0][j];
for (i=1; i< N; i++)
if (arr[i][j] > max)
max = arr[i][j];
printf(" %3d ", max);
}
printf("\n");
}
C/C++
Си. Подсчитать количество появлений максимального элемента матрицы
#include
#include
#include
#include
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define ROWS 12
#define COLS 24
#define LEFT 10
#define RIGHT 100
void fill(int* box) {
if (box != NULL) {
size_t i = 0;
while (i != COLS) {
box[i] = RAND(LEFT, RIGHT);
++i;
}
}
}
void show(int* box, int width) {
if (box != NULL) {
size_t i = 0;
while (i != COLS) {
printf("%*i", width, box[i]);
++i;
}
}
puts("");
}
int max_element(int* box) {
int element = INT_MIN;
if (box != NULL) {
size_t i = 0;
while (i != COLS) {
if (box[i] > element) element = box[i];
++i;
}
}
return element;
}
int count(int* box, int value) {
int cnt = 0;
if (box != NULL) {
size_t i = 0;
while (i != COLS) {
if (box[i] == value) ++cnt;
++i;
}
}
return cnt;
}
int main(void) {
int matrix[ROWS][COLS];
int width = 4;
unsigned cnt = 0U;
int mx;
size_t i;
srand((unsigned)time(NULL));
for (i = 0; i < ROWS; ++i) fill(matrix[i]);
for (i = 0; i < ROWS; ++i) show(matrix[i], width);
mx = max_element(matrix[0]);
for (i = 1; i < ROWS; ++i) {
int next = max_element(matrix[i]);
if (next > mx) mx = next;
}
printf("max value: %i\n", mx);
for (i = 0; i < ROWS; ++i) cnt += count(matrix[i], mx);
printf("count: %u\n", cnt);
return 0;
}
int count_max = 0;
int max = arr[0][0];
for (int i=0;i<N;i++)
for (int j=0;j<M;j++)
{
if (arr[i][j] > max) {count_max = 1; max = arr[i][j]; continue;}
if (arr[i][j] == max) {count_max++;}
}
//count_max - количество повторений
int max = arr[0][0];
for (int i=0;i<N;i++)
for (int j=0;j<M;j++)
{
if (arr[i][j] > max) {count_max = 1; max = arr[i][j]; continue;}
if (arr[i][j] == max) {count_max++;}
}
//count_max - количество повторений
Похожие вопросы
- Составьте программу удаления столбца, содержащего максимальный элемент матрицы A[N][N] НА ЯЗЫКЕ СИ
- Найти максимальный элементы в строке матрицы
- Код работает некорректно. Язык Си. Нахождение максимального отрицательного элемента матрицы и замена его числом.
- Найти максимальный элемент в квадратной матрице и сказать под главной диагональю он находится или нет
- Найти 10 максимальных элементов в матрице
- Заменить нулями элементы массива, которые расположены между первым минимальным и последним максимальным элементами масси
- C++ как найти N-ый максимальный элемент масива?
- Элементы Матрицы C++
- СИ. Можно ли как-то транспонировать матрицу, не создавая новую
- Подсчитайте количество столбцов массива, которые не содержат отрицательных значений.