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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2011, 16:11   #1
ADSL106320
Новичок
Джуниор
 
Регистрация: 14.12.2011
Сообщений: 2
По умолчанию Массивы

Дана матрица А(4;4)
1)Найти сумму S отрицательных элементов на побочной диагонали
2)Найти наибольший элемент 2-столбца и его местоположение
3)Заменит найденный максимальный элемент во 2-ом столбце на значение суммы S.
Помогите с решением задачи плиз.
ADSL106320 вне форума Ответить с цитированием
Старый 14.12.2011, 19:52   #2
Mikola-TEAM
Пользователь
 
Регистрация: 31.05.2008
Сообщений: 34
По умолчанию

Код:
#include <iostream>

using namespace std;

int main()
{
    //объявим двумерный массив 4х4
    float a[4][4];

    //заполним двумерный массив
    for (int i=0; i<=3; i++)
    {
        for (int j=0; j<=3; j++)
        {
            cout << "Enter A" << i+1 << j+1 << " :";
            cin >> a[i][j];
            cout << endl;
        }
    }

    //найдём сумму S отрицательных элементов на побочной диагонали
    float s=0;
    for (int i=0, j=3; i<=3; i++)         //i++ побочная диагональ идёт сверху вниз (по строкам) и j-- справа налево (по столбцам)
    {
        {
            if (a[i][j]<0)
            {
                s=s+a[i][j];//если элемент отрицателен, то добавляется к сумме
            }
        }
        j--;
    }

    //найдём наибольший элемент второго столбца и его индекс в массиве
    float maxNumber=a[0][1];//первый же элемент второго стобца пока самый большой (не забываем, что в массиве счёт идёт с 0, а не с 1)
    int maxIndex=0;         //поэтому индекс первого элемента в массиве 0
    for (int i=1; i<=3; i++)
    {
        if (a[i][1]>maxNumber)
        {
            maxNumber=a[i][1];//но если следующий элемент больше, то выбираем его самым большим
            maxIndex=i;    //и выбираем его индекс
        }
    }

    //а теперь вместо самого большого элемента второго столбца запишем найденную ранее сумму отрицательных чисел побочной диагонали
    a[maxIndex][1]=s;

    //выведим на экран получившуюся матрицу
    for (int i=0; i<=3; i++)
    {
        for (int j=0; j<=3; j++)
        {
            cout << a[i][j] << "\t";
        }
        cout << endl;
    }

    //чтоб окно само не закрывалось
    cin.get();
    cin.get();//иногда 1-го мало

    return 0;
}
Делал не в вижуале, поэтому могут потребоваться небольшие правки. Но алгоритм будет таким.

← Не забываем на весы нажать ← или сюда капнуть R320061088693

Последний раз редактировалось Mikola-TEAM; 14.12.2011 в 19:55.
Mikola-TEAM вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
указатели на массивы и массивы указателей blacktener Общие вопросы C/C++ 16 13.06.2011 20:45
Массивы .::HroNik::. Общие вопросы C/C++ 1 01.12.2010 13:59
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12