C/C++

Программа на си коде

Дана квадратная вещественная матрица.

а) путем перестановки элементов матрицы добиться того, чтобы ее максимальный элемент находился в левом верхнем углу, следующий по величине - в позиции (2,2), следующий по величине - в позиции (3,3) и т. д., заполнив таким образом всю главную диагональ.

б) найти номер первой из строк, не содержащих ни одного положительного элемента.
Здравствуйте помогите решить пожалуйста
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
#include <locale.h>

#define N 5

void print(float arr[N][N], const char* message) {
    puts(message);
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < N; ++j)
            printf("%5.1f ", arr[i][j]);
        puts("");
    }
}

void swap(float* a, float*b) {
    const float tmp = *a;
    *a = *b;
    *b = tmp;
}

void permutate(float arr[N][N]) {
    for (int i = 0; i < N; ++i) {
        int rowMax = i, colMax = 0;
        for (int j = 0; j < N; ++j)
            for (int k = 0; k < N; ++k)
                if ((j != k || j >= i) && arr[j][k] > arr[rowMax][colMax]) {
                    rowMax = j;
                    colMax = k;
                }
        swap(&arr[i][i], &arr[rowMax][colMax]);
    }
}

bool allNonPositive(float arr[N]) {
    for (int i = 0; i < N; ++i)
        if (arr[i] > 0)
            return false;
    return true;
}

int rowOfNonPositives(float arr[N][N]) {
    for (int i = 0; i < N; ++i)
        if (allNonPositive(arr[i]))
            return i;
    return N;
}

int main(void) {
    setlocale(LC_ALL, "Russian");
    srand((unsigned)time(NULL));
    float arr[N][N];
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < N; ++j)
            arr[i][j] = (rand() % 200 - 160) * 0.1f;
    print(arr, "Исходная матрица");
    const int row = rowOfNonPositives(arr);
    if (row < N)
        printf("Номер первой из строк, не содержащих ни одного положительного элемента: %d\n", row + 1);
    else
        puts("В матрице нет строк, которые не содержат ни одного положительного элемента");
    permutate(arr);
    print(arr, "После перестановки");
    return 0;
}
Юрий Студенцов
Юрий Студенцов
20 861
Лучший ответ
Андрей Вяткин Здравствуйте Спасибо за ответ! Не могли бы вы рассказать немного об этом коде ?)
И где "программа на си коде", с которой помочь нужно?
**
********* *********
25 516
Андрей Вяткин Я же прошу решить) просто совсем не шарю :)