Сравнение max & min

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main()
{
    int K[5][5];
    int i, j, max = 40, min = -20;
    int iMax = 0, jMax = 0, iMin = 0, jMin = 0;
   
//вывод
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            K[i][j] = min + rand() % (max + 1 - min);
            printf("%4d ", K[i][j]);
        }
        printf("\n");
    }
//сравнение
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            if (K[i][j] < K[iMin][jMin])
            {
                iMin = i;
                jMin = j;
            }
            if (K[i][j] > K[iMax][jMax])
            {
                iMax = i;
                jMax = j;
            }
        }
    }
    printf("%d\t%d ",max,min );
   return  0;
   }

условие задания:Дана матрица А, состоящая из М строк и N столбцов. Элементами матрицы А являются натуральные числа. Назовем строку особой, если разность максимума и минимума по строке является простым числом. Вывести на экран количество особых строк Да знаю что не предоставил код,который пытался сделать по разделению строк(по правилам вроде нужно),но смысловой нагрузки от него ноль,потому что не чего не вышло.Прошу помочь


Ответы (1 шт):

Автор решения: Mikhailo

https://ideone.com/gTmOKW

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main() {
    int M = 10, N = 20;
    int** K = malloc(M * sizeof(int*));

    for (int i = 0; i < M; ++i) {
        K[i] = malloc(N * sizeof(int));

        for (int j = 0; j < N; ++j) K[i][j] = rand() % 100;
        }

    int count = 0;

    for (int i = 0; i < M; ++i) {
        for (int j = 0; j < N; ++j) printf("%3d ", K[i][j]);

        printf("| ");
        int min = K[i][0], max = K[i][0];

        for (int j = 1; j < N; ++j) {
            if (min > K[i][j]) min = K[i][j];
            else if (max < K[i][j]) max = K[i][j];
            }

        int k = max - min;
        printf("%3d %3d %3d ", min, max, k);

        if (k == 0 || k == 1) continue;

        int prime = 1;

        for (int j = 2; j * j <= k; ++j) {
            if (k % j == 0) {
                prime = 0;
                break;
                }
            }

        if (prime) {
            printf("*\n");
            count++;
            }
        else printf("\n");
        }

    printf("\n%d\n", count);
    }
→ Ссылка