Предмет: Информатика, автор: BlackNPS

Реализовать программу

Задана матрица действительных чисел размерностью М х N (2= Найти минимальное значение из всех максимальных элементов строки.

Ответы

Автор ответа: tigryn46
0

#include <stdio.h>

#include <time.h>

#include <stdlib.h>

int main()

{

int n, i, j, jmax, jmin;

float a[50][50], min, max, sum = 0;

printf("N = "); scanf_s("%d", &n);

for (i = 1; i <= n; i++)

{

for (j = 1; j <= n; j++)

{

a[i][j] = rand() % 10 - 5.37;

printf("%7.3f", a[i][j]);

}

printf("\n");

}

printf("\n");

for (i = 1; i <= n; i++)

{

max = a[i][1]; jmax = 1;

min = a[i][1]; jmin = 1;

for (j = 1; j <= n; j++)

{

if (a[i][j] > max)

{

max = a[i][j];

jmax = j;

}

if (a[i][j] < min)

{

min = a[i][j];

jmin = j;

}

}

float tmp = a[i][jmax];

a[i][jmax] = a[i][jmin];

a[i][jmin] = tmp;

for (j = 1; j <= n; j++)

printf("%7.3f", a[i][j]);

printf("\n");

}

for (int i = 0; i < n; i++)

for (int j = 0; j < n; j++)

if (i == j)

{

sum += a[i][j];

}

printf("Summa - %7.3f", sum);

}

если код не будет работать в консоли

то

во-первых где у вас инициализация переменной n - вы её используете не проинициализировав, т.е. в ней всякая хрень может быть

во-вторых в C массивы считаются от 0, а не от 1

int arr[50];

for (int i = 1; i <= 50; i++)

будет означать, что с arr[0] элементом сделано ничего не будет, а arr[50] уже выходит из диапазона 0..49

у вас есть массив из 1 элемента в который записано 10, а вы считываете не из arr[0], а arr[1], т.е. вне массива и получаете скажем 0xfde5a675 - вот и ответ :) вы считываете левые данные и они могут быть любыми, поэтому сумма может быть любой - причем в конце когда вы почему-то уже правильно используете for

Похожие вопросы