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

С++.Дана целая матрица А(N,M). Составить программу подсчета среднего
арифметического значения матрицы. Найти отклонение от среднего у элементов
каждой строки.
Алгоритм составил, всё по формуле, но вот почему-то выводит не точный результат, иногда вообще выводит бред.


JenyaPivovar: Сюда весь код не влезает, поэтому кину сначала первую часть, потом вторую
JenyaPivovar: #include <iostream>
#include <ctime>
#include <cstdlib>
#include <cmath>
using namespace std;
void main()
{
srand(time(NULL));
const int n = 5, m = 4;
int a[n][m];
cout << "Your matrix" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a[i][j] = rand() % 10;
cout << a[i][j] << " ";
}
cout << endl;
}
JenyaPivovar: float sum = 0, count = 0.0;
for (int i = 0; i < n; i++) {
sum = 0;
count = 0;
for (int j = 0; j < m; j++) {
count++;
sum += a[i][j];
}
sum /= count;
for (int j = 0; j < m; j++) {
a[i][j] = a[i][j] - sum;
a[i][j] = pow(a[i][j], 2);
}
sum = 0;
for (int j = 0; j < m; j++) {
sum += a[i][j];
}
sum /= count;
cout << "Raw " << i+1 << " otklonenie ot srednego = " << sqrt(sum) << endl;
}
cin.get();
cin.get();
}
clinteastwood2: сейчас посмотрим.
clinteastwood2: я так понимаю само среднее арифметическое значение матрицы вы не выводите, а сразу отклонение у столбца?
JenyaPivovar: Да
JenyaPivovar: отклонение строки*
clinteastwood2: а если массив с int a[n][m] на double a[n][m] заменить?
JenyaPivovar: возможно, сейчас проверю
JenyaPivovar: Боже, спасибо вам, 2 дня мучался, а оказывается нужно было тип данных массива изменить, можете ответить, что-бы получить баллы.

Ответы

Автор ответа: clinteastwood2
2
Если вам важна точность вычисления данных вплоть до сотых или тысячных надо использовать типы с плавающей точкой, но не везде а только там где над ними проводят любые арифметические действия
Похожие вопросы