
C/C++
Нужна помощь с матрице с++

#include <iostream>
#include <vector>
using namespace std;
int main() {
size_t row, column;
cin >> row >> column;
vector<vector<double>> matrix(row);
for (auto& vec : matrix) {
vec.resize(column);
for (double& i : vec) cin >> i;
}
vector<double> avgs;
avgs.reserve(column);
for (int j = 0; j < column; ++j) {
double sum = 0;
for (int i = 0; i < row; ++i) {
if (matrix[i][j] > 0) sum += matrix[i][j];
}
avgs.push_back(sum / row);
}
for (double i : avgs) cout << i << " ";
return 0;
}
#include <vector>
using namespace std;
int main() {
size_t row, column;
cin >> row >> column;
vector<vector<double>> matrix(row);
for (auto& vec : matrix) {
vec.resize(column);
for (double& i : vec) cin >> i;
}
vector<double> avgs;
avgs.reserve(column);
for (int j = 0; j < column; ++j) {
double sum = 0;
for (int i = 0; i < row; ++i) {
if (matrix[i][j] > 0) sum += matrix[i][j];
}
avgs.push_back(sum / row);
}
for (double i : avgs) cout << i << " ";
return 0;
}
Руслан Сагумбаев
А можно без векторов, мы ещё это не прохожили.
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
int main() {
const size_t n = 12U, m = 10U;
const streamsize w = 8U;
int matrix[n][m];
uniform_int_distribution<> uid(-100, 100);
mt19937 gen{ random_device()() };
auto rand = [&] { return uid(gen); };
auto print = [](int x) { cout << setw(w) << x; };
for (auto& row : matrix) generate(row, row + m, rand);
for (auto& row : matrix) {
for_each(row, row + m, print);
puts("");
}
puts("");
cout << fixed << setprecision(2);
for (auto j = 0U; j < m; ++j) {
auto sum = 0;
auto x = 0;
for (auto i = 0U; i < n; ++i) if (matrix[i][j] > 0) {
sum += matrix[i][j];
++x;
}
cout << setw(w) << double(sum) / x;
}
puts("");
system("pause > nul");
}
#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
int main() {
const size_t n = 12U, m = 10U;
const streamsize w = 8U;
int matrix[n][m];
uniform_int_distribution<> uid(-100, 100);
mt19937 gen{ random_device()() };
auto rand = [&] { return uid(gen); };
auto print = [](int x) { cout << setw(w) << x; };
for (auto& row : matrix) generate(row, row + m, rand);
for (auto& row : matrix) {
for_each(row, row + m, print);
puts("");
}
puts("");
cout << fixed << setprecision(2);
for (auto j = 0U; j < m; ++j) {
auto sum = 0;
auto x = 0;
for (auto i = 0U; i < n; ++i) if (matrix[i][j] > 0) {
sum += matrix[i][j];
++x;
}
cout << setw(w) << double(sum) / x;
}
puts("");
system("pause > nul");
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,j,N,M,count;
/*размерность массива: */
printf("\n Columns count = ");
scanf("%d",&M);
printf("\n Strings count = ");
scanf("%d",&N);
float * Mid=(float*)malloc(M*sizeof(float));
int **A = (int**)malloc(N * sizeof(int*));
for (i = 0; i < N; i++)
A[i] = (int*)malloc(M * sizeof(int));
/* заполнение массива случайными значениями: */
srand(time(NULL));
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
{
if(rand()%2==0)
A[i][j] = rand()%10;
else
A[i][j]=(-1)*rand()%10;
}
/*расчёт среднего арифметического: */
for (i = 0; i < M; i++)
{//N
count=0;*Mid=0;
for (j = 0; j < N; j++)
{//M
if(A[j][i]>=0)
{
*Mid=*Mid+A[j][i];
count++;
}
}//M
*Mid=*Mid/count;
Mid++;
}//N
//вывод массива:
printf("\nArray A:\n");
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
if(A[i][j]>=0)
printf(" %d ", A[i][j]);
else
printf("%d ", A[i][j]);
printf("\n");
}
printf("\n\n");
//переход в начало массива:
for(int i=0;i<M;i++) Mid--;
/*выводим среднее арифметическое:
Middle1 - 1-й столбец, Middle2 -
2-й столбец и т. д. :*/
for(int i=0;i<M;i++)
{
printf("Middle%d=%.2f ",i,*Mid);
Mid++;
}
for (i = 0; i < M; i++)
free(A[i]);
free(A);
return 0;
}

#include <stdlib.h>
#include <time.h>
int main()
{
int i,j,N,M,count;
/*размерность массива: */
printf("\n Columns count = ");
scanf("%d",&M);
printf("\n Strings count = ");
scanf("%d",&N);
float * Mid=(float*)malloc(M*sizeof(float));
int **A = (int**)malloc(N * sizeof(int*));
for (i = 0; i < N; i++)
A[i] = (int*)malloc(M * sizeof(int));
/* заполнение массива случайными значениями: */
srand(time(NULL));
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
{
if(rand()%2==0)
A[i][j] = rand()%10;
else
A[i][j]=(-1)*rand()%10;
}
/*расчёт среднего арифметического: */
for (i = 0; i < M; i++)
{//N
count=0;*Mid=0;
for (j = 0; j < N; j++)
{//M
if(A[j][i]>=0)
{
*Mid=*Mid+A[j][i];
count++;
}
}//M
*Mid=*Mid/count;
Mid++;
}//N
//вывод массива:
printf("\nArray A:\n");
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
if(A[i][j]>=0)
printf(" %d ", A[i][j]);
else
printf("%d ", A[i][j]);
printf("\n");
}
printf("\n\n");
//переход в начало массива:
for(int i=0;i<M;i++) Mid--;
/*выводим среднее арифметическое:
Middle1 - 1-й столбец, Middle2 -
2-й столбец и т. д. :*/
for(int i=0;i<M;i++)
{
printf("Middle%d=%.2f ",i,*Mid);
Mid++;
}
for (i = 0; i < M; i++)
free(A[i]);
free(A);
return 0;
}


Похожие вопросы
- Нужна помощь с выполнением заданий в C++
- Нужна помощь в составлении одномерных массивов С++
- C++.Нужна помощь в написании кода.
- Очень нужна помощь. нужен код на C. Задачка будет в описании.
- Нужна помощь с написанием кода на языке "С"
- Программисты, нужна помощь
- Мне нужна помощь с одной задачкой по c++.
- Нужна помощь по шаблонам на C++
- Добрый день. Нужна помощь в реализации динамических структур. Нужно написать дек с использованием malloc.
- Нужна помощь с задачей на С++