во-первых где у вас инициализация переменной 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
Answers & Comments
#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