минимум и максимум в языке си
в "input.dat" файле есть матрица, которую програма должна считать и вывести максимум и минимум в файл "output.dat". Hаткнулась на проблему что в файле "output.dat" очень большые числa и они несоответствуют числам в файле "input.dat". Вот код, немогу разобраться в чём проблема:
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
FILE *fr;
unsigned int masyvas[10][10];
fr = fopen("input.dat", "r");
unsigned int m, n;
unsigned int minimum = masyvas[0][0];
unsigned int maximum = masyvas[0][0];
fscanf(fr, "%u %u", &m, &n);
for (unsigned int i = 0; i < m; i++) {
for (unsigned int j = 0; j < n; j++) {
if (masyvas[i][j] < minimum)
{
minimum = masyvas[i][j];
}
if (masyvas[i][j] > maximum)
{
maximum = masyvas[i][j];
}
}
}
fclose(fr);
unsigned int max[10];
for (unsigned int i = 0; i < n; i++)
max[i] = 0;
for (unsigned int i = 0; i < m; i++) {
for (unsigned int j = 1; j < m; j++) {
if (masyvas[j][i] > max[i]) {
max[i] = masyvas [j][i];
if (masyvas[i][j] < minimum)
{
minimum = masyvas[i][j];
}
if (masyvas[i][j] > maximum)
{
maximum = masyvas[i][j];
}
}
}
}
FILE *fw;
fw = fopen("output.dat", "w+");
for (unsigned int i = 0; i < m; i++) {
for (unsigned int j = 0; j < n; j++) {
fprintf(fw, "%u ", masyvas[i][j]);
fprintf(fw,"\nMinimum: %d\nMaximum: %d\n", minimum, maximum);
fclose(fw);
return 0;
}
Ответы (1 шт):
unsigned int masyvas[10][10];
unsigned int minimum = masyvas[0][0];
unsigned int maximum = masyvas[0][0];
вот в этом дело
вы считали из массива, в который ничего не было записано (ну или массив хотя бы не был заполнен нулями), в итоге в массиве мог быть любой треш, например очень большие числа или малые числа и уже после того как вы считали в массив из файла нормальные числа, то не смогли найти среди них наибольшее или наименьшее, потому что приходилось сравнивать с заведомо большим или меньшим числом