Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2022, 16:20   #11
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Я же сказал что не поможет. Вам надо посчитать количество строк с четными числами.
Код:
for (int i=0, f; i<n; i++) {
       f=0;
            for (int j=0; j<m; j++) {
                if (A[i][j] & 1 == 0) {
                    f++;
                }
            }
        if (f) k++;
    }
вот так надо. Если в строке есть хотя бы один четный, то увеличивайте k. А f используется как флаг, но ее значения можно сохранить в массив для получения количество четных элементов в каждой строке.

ADD: Кстати этот кусок не плохо было бы перенести в процедуру подсчета суммы четных элементов, а не передавать ссылку на k.

Последний раз редактировалось macomics; 11.05.2022 в 16:31.
macomics вне форума Ответить с цитированием
Старый 11.05.2022, 16:55   #12
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 736
По умолчанию

А что картинки не показывает у меня постоянно?
Cuprum5 на форуме Ответить с цитированием
Старый 11.05.2022, 16:58   #13
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 736
По умолчанию

"Сумму четных элементов в каждой строке" надо найти.
Вам обязательно спрашивать у пользователя сколько строк и столбцов? Предлагаю рандомно(rand()) заполнить массив и оставить статический массив на 10 элементов(квадратный).
Код:
int* poisksum(int matrix[10][10],int &n, int &m)
{
    int* sum = new int[n];
    int sum1=0, z=0;
    for(int i=0; i<n; i++)
    {
        sum[i] = 0;
        for(int j=0; j<m; j++)
            if(matrix[i][j]%2 == 0)
                sum[i] += matrix[i][j];
    }
    return sum;
}
- Так сойдет?
Неплохо бы под динамический одномерный массив память в main-e выделить и не забываем удалять ее:
Код:
delete[] sum;

Последний раз редактировалось Cuprum5; 11.05.2022 в 17:08.
Cuprum5 на форуме Ответить с цитированием
Старый 11.05.2022, 17:04   #14
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
"Сумму четных элементов в каждой строке" надо найти.
Только в предложенном варианте кода идет подсчет k для выделения динамического массива.
Я не предлагаю свой вариант решения, а лишь исправляю авторский вариант.
macomics вне форума Ответить с цитированием
Старый 11.05.2022, 17:10   #15
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 736
По умолчанию

Вы, товарищ, автор темы определитесь сначала с типом массива: статический или динамический. - Это определит всю остальную программу.
Cuprum5 на форуме Ответить с цитированием
Старый 11.05.2022, 18:31   #16
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 736
По умолчанию

Вот программа, как вариант.
Код:
#include <iostream>
using namespace std;
int* sum;

void poisksum(int matrix[10][10], int &n, int &m)
{
    for(int i=0; i<n; i++)
    {
        sum[i] = 0;
        for(int j=0; j<m; j++)
            if(matrix[i][j]%2 == 0)
                sum[i] += matrix[i][j];
    }
}

void nsort(int* a, int& n)
{
    int temp;

    for(int i = 0; i < n-1; i++)
    {
        for(int j = 0; j < n-i-1; j++)
        {
            if(a[j] < a[j+1])
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
}


int main()
{
    int A[10][10], n=10, m=10, k=0;

    system("chcp 1251");
    sum = new int[n];

    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            A[i][j] = rand()%10;
            cout << A[i][j] << ' ';
        }
        cout << '\n';
    }

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            if(A[i][j]%2 == 0)
                k++;
        }
    }

    poisksum(A, n, m);
    cout << "\nsum:\n";
    for(int i = 0; i < n; i++)
        cout << sum[i] << " ";
    cout << '\n';

    nsort(sum, n);
    cout << "Result:" << endl;
    for(int i = 0; i < n; i++)
        cout << sum[i] << " ";
    cout << '\n';

    delete[] sum;
    system("pause");
    return 0;
}
Cuprum5 на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив m*n. Составить массив из наименьших элементов каждой строки данного массива. Найти сумму наибольшего и наименьшего элемента массива. Miriam_ Паскаль, Turbo Pascal, PascalABC.NET 2 23.04.2017 11:18
массив А[N] из элементов типа short integer (целое восьмиразрядное со знаком). Составить программу нахождения максимального и минимального элемента. Mikki_mini Помощь студентам 3 11.12.2016 10:32
PascalABC.NET составить массив из первых 10 результатов вычислений. ser18 Помощь студентам 5 06.03.2016 22:21
Двумерный массив. Отсортировать столбцы матрицы по убыванию количества элементов кратных 3 СержГрановский Паскаль, Turbo Pascal, PascalABC.NET 4 06.03.2014 09:05
процедуры, цикл нахождения четных элементов каждой строки массива и вычисление из суммы nikepol Помощь студентам 0 15.06.2011 16:43