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

Регистрация
7 Дек 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Дан двумерный массив a, размером (n´m). Заполнить одномерный массив, найдя количество положительных элементов в каждой строке матрицы.
 
#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) { b += 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;
}
 
Не вижу ничего сложного в задании.

Нужно просто пройтись циклом по двумерному массиву, для этого можно использовать внешний цикл для обхода строк, а внутренний цикл для обхода столбцов двумерного массива, и в теле этого цикла нужно задать условие, если данный элемент массива содержит положительное значение, то нужно добавить это значение к созданному пустому массиву.
 
#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 += x > 0;
}
}
for (size_t i = 0; i < n; i++) std::cout
 
Назад
Сверху