Тема: Проблеми з кодом
(Завдання для створення функції з одним або двома результатами)
Розмір масиву:4x5
Тип даних: цілий
Обчислити середнє арифметичне мінімального та максимального елементів матриці.
#include "pch.h"
#include <iostream>
#include <time.h>
int Foo(int Arr[4][5])
{
int min = Arr[0][0];
int max = Arr[0][0];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 3; j++)
{
if (Arr[i][j] < min)
min = Arr[i][j];
if (Arr[i][j] > max)
max = Arr[i][j];
}
}
return (min + max) / 2;
}
int main()
{
srand(time(NULL));
int Arr[4][5];
for (int i = 0;i < 4;i++)
{
for (int j = 0;j < 5;j++)
{
Arr[i][j] = rand() % 50 - i;
printf("%5d\t", Arr[i][j]);
}
printf("\n");
}
printf("Average:%i",Foo(Arr));
return 0;
}
Результат:
2 44 27 44 18
24 37 45 10 10
27 14 15 29 42
44 7 31 22 4
Average:23
Як мені зробити так, щоб результат був дробовим? Я перепробув різні перестановки типів і вводив змінну типу float в якій зберігав значення середнього арифметичного, але жодго разу в мене не вийшло отримати число з цифрою відмінною від нуля після коми.
І ще тут результат вийшов адеватний (2+45)/2=23,5 але буває ось таке:
11 13 26 20 38
35 10 19 44 16
3 28 24 35 32
37 13 -2 45 9
Average:17
(-2+45)/2=17????? це як так виходить? Де я зробив помилки?