Создать одномерный массив из средних арифметических значений каждой строки матрицы - C (СИ)
Формулировка задачи:
Всем привет, недавно начал изучать программирование и не могу понять как решить данную задачу:"Ввести двумерный массив вещественных чисел размерностью m´n. Создать одномерный массив из средних арифметических значений каждой строки матрицы." Может кто поможет разобраться? Вот мой код:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{ const int n=3,m=3;
int A [m][n];
int i,j,s;
float B[i];
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
printf("A[%d][%d]",i,j);
scanf("%d",&A[i][j]);}
for (i=0;i<n;i++)
{for(j=0;j<m;j++)
s=0;
s=s+A[i][j];
i++;
}
B[i]=s/m;
printf("B[%d]=%d\t",B[i]);
}Решение задачи: «Создать одномерный массив из средних арифметических значений каждой строки матрицы»
textual
Листинг программы
#include <stdio.h>
int main()
{
const int n = 3, m = 3;
float A[m][n];
float s;
float B[m];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
printf("A[%d][%d] - ",i,j);
scanf("%f",&A[i][j]);
}
for (int i = 0; i < m; i++)
{
s = 0;
for(int j = 0; j < n; j++)
{
if(A[i][j] < 0) {s = 0; break;} // Добавляем условие
s = s + A[i][j];
}
B[i] = s / n;
}
for(int i = 0; i < m; i++)
printf("B[%d] = %f\n",i,B[i]);
}
Объяснение кода листинга программы
- Ввод размера матрицы и создание самой матрицы.
- Ввод значений матрицы.
- Инициализация переменных для хранения суммы и среднего значения.
- Обход матрицы для вычисления суммы элементов каждой строки.
- Условие для игнорирования отрицательных чисел при расчете среднего значения.
- Вычисление среднего значения и сохранение в отдельном массиве.
- Вывод среднего значения каждой строки матрицы.