Тема: Проблема з визначенням максимального числа
Завдання
Дано цілочисельну прямокутну матрицю. Визначіть:
Кількість рядків, що не містять нульового елемента;
Максимальне з чисел, що зустрічається у заданій матриці більше одного разу.
#include "pch.h"
#include <iostream>
#include <ctime>
#include <cmath>
int main()
{
srand(time(NULL));
setlocale(LC_CTYPE, "ukr");
int a[6][6], i, j, rowc = 0, k = 0, N, M;
printf("Введiть кількість рядків M: ");
scanf_s("%d", &M);
printf("Введіть кількість стовпців N: ");
scanf_s("%d", &N);
int r[6] = { 0 };// r – масив кількості нульових елементів рядків матриці
int max = a[0][0];
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
a[i][j] = rand() % 11;
if (a[i][j] == 0)
{
r[i]++;
}
if (a[i][j] > max)
max = a[i][j];
}
}
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
printf("%i\t", a[i][j]);
}
printf("\n");
}
for (i = 0; i < M; i++)
{
if (r[i] == 0) // r[i]=0 означає, що в і-му рядку немає нульових елементів
{
rowc++;
}
}
int **b = (int **)calloc(M * N, sizeof(int)); // Виділення пам’яті для динамічної матриці b
for (i = 0; i < rowc; i++)
{
b[i] = (int*)calloc(N, sizeof(int));
}
for (i = 0; i < M; i++)
{
if (r[i] == 0) // Якщо в і-му рядку відємних елементів немає, відбувається
{
for (j = 0; j < N; j++)
{
b[k][j] = a[i][j]; //копіювання рядка у нову матрицю
}
k++; // і збільшення індексу рядка нової матриці.
}
}
printf(" %d - рядків які не містять нульових елементів \n", rowc);
printf(" %d - максимальний елемент\n", max);
printf("Матриця, в рядках якої немає нульових елементiв: \n");
for (i = 0; i < rowc; i++)
{
for (j = 0; j < N; j++)
{
printf("%i\t", b[i][j]);
}
printf("\n");
}
for (int i = 0; i < rowc; i++)
free(b[i]); // Звільнення пам’яті від динамічної матриці
free(b);
system("pause>>void");
return 0;
}
Не можу правильно виконати друге завдання, знайшов тільки максимальне число.