C/C++

Помогите написать программу по этому условию

Дан двумерный массив a, размером (n´m). Заполнить одномерный массив, найдя количество положительных элементов в каждой строке матрицы.
 #include  
int main()
{
size_t n, m;
double x;
std::cin >> n >> m;
auto res = std::make_shared(n, 0);
for (size_t i = 0; i < n; i++)
{
for (size_t j = 0; j < m; j++)
{
std::cin >> x;
res[i] += x > 0;
}
}
for (size_t i = 0; i < n; i++) std::cout
АК
Анатолий Карабашев
51 416
Лучший ответ
Игорь Рыков почему то в этой строчке выдает ошибку
auto res = std::make_shared<size_t[]>(n, 0);
Анатолий Карабашев Возможно следует добавить библиотеку умных указателей
 #include  
или если совсем старый компилятор то по старинке:
 size_t* res = new size_t[n]{}; 
Или по классике с++:
 #include 
...
std::vector res(n);
 #include 
#include

using namespace std;

int main() {
int n, m;
cin >> n >> m;
vector a(n, vector(m));
for (auto &row: a) {
for (auto &v: row) { cin >> v; }
}

vector b(a.size(), 0);
for (int i = 0; i < a.size(); ++i) {
for (auto v: a[i]) { b[i] += v > 0; }
}

for (auto v: b) { cout
Язык указывать надо, а то не понятно Си или C++

 /* программа на языке Си */ 

#include
#include
#include

int main()
{
int n,m,**a,*q,x,y;

do
{
printf("Kolichestvo strok = ");
scanf("%d", &n);
if(n < 1) printf("n > 0\n");
}while(n < 1);

do
{
printf("Kolichestvo stobcov = ");
scanf("%d", &m);
if(m < 1) printf("m > 0\n");
else if(n == m) printf("n != m\n");
}while(m < 1 || m == n);

a = (int**) malloc(sizeof(int*) * n);
for(x = 0; x < n; x++)
a[x] = (int*) malloc(sizeof(int) * m);

q = (int*) malloc(sizeof(int) * n);

srand(time(NULL));
for(x = 0; x < n; x++)
{
q[x] = 0;
for(y = 0; y < m; y++)
{
a[x][y] = rand() % 41 - 20; /* [-20;20] */
printf("%d\t",a[x][y]);
if(a[x][y] > 0) q[x]++;
}
putchar('\n');
}
putchar('\n');

for(x = 0; x < n; x++)
printf("%d\n", q[x]);
putchar('\n');

if(q == (int*) NULL) exit(1);
free(q);
q = (int*) NULL;

if(a == (int**) NULL) exit(1);
for(x = 0; x < n; x++)
{
if(a[x] == (int*) NULL) exit(1);

free(a[x]);

a[x] = (int*) NULL;
}
free(a);
a = (int**) NULL;

return 0;
}
Не вижу ничего сложного в задании.

Нужно просто пройтись циклом по двумерному массиву, для этого можно использовать внешний цикл для обхода строк, а внутренний цикл для обхода столбцов двумерного массива, и в теле этого цикла нужно задать условие, если данный элемент массива содержит положительное значение, то нужно добавить это значение к созданному пустому массиву.