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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2010, 20:56   #1
RenSit
 
Регистрация: 04.04.2010
Сообщений: 3
По умолчанию С++. Трёхмерные массивы

Здравствуйте. Есть задача на С++ следующего плана: Написать функцию для вычисления суммы элементов квадратной матрицы, которые расположены ниже главной диагонали. С ее помощью найти максимальное значение такой суммы в n матрицах.
Ну, облегчив себе жизнь, я решил, что ранги у всех матриц одинаковые и написал программу, она даже как то работает. Но сделал я это с помощью трёхмерных массивов. Вот собственно я и хочу спросить, можно ли это сделать как то, не прибегая к ним? И как можно "облегчить" данный код? Заранее спасибо.

PHP код:
#include "iostream"
#include "windows.h"
#include "time.h"

using namespace std;
//9. Написать функцию для вычисления суммы элементов квадратной матрицы, 
//которые расположены ниже главной диагонали. С ее помощью найти максимальное значение такой
//суммы в n матрицах.
int max_sum (int nint sizeint m[][50][50])
{
    
int basket=0;
    
int sum[20];                            
    
int s=1;
    for (
int i=1i<=ni++)                        
    {
        for (
int j=1j<=sizej++)
            for (
int k=1k<=sizek++)
            {
            
//    cout << "\n" << *(m[i][j]+k) << "\n";
                
if (j>k)
                {
                    
basket+=*(m[i][j]+k);
                }
            }
        
sum[s]=basket;
        
s++;
        
basket=0;
    }
    
int max=0;
    for (
int i=1i<=n;i++)
    {
        
cout << "Сумма элементов ниже главной диагонали " << << "й матрицы = " << *(sum+i) << "\n";
        if (*(
sum+i)>maxmax=sum[i];
    }
    return 
max;
}

void main ()
{
    
srand(time(NULL));
    
SetConsoleCP(1251);
    
SetConsoleOutputCP(1251);
    
srand(time(NULL));

    
int m[20][50][50];
    
int sum[20];                            //сюда складываем суммы
    
int s=1;
    
int n;
    
int ijk;                            //счётчики циклов
    
cout << "Введите количество матриц\n";
    
cin >> n;
    
int size;
    
cout << "Введите размерность матриц\n";
    
cin >> size;
    for (
i=1i<=ni++)                        //забиваем матрицы числами от 1 до 100
    
{    
        
cout << "\n\n" << <<"я матрица\n";
        for (
j=1j<=sizej++)
        {
            
cout << "\n";
            for (
k=1k<=sizek++)
            {
                
m[i][j][k]=rand() % 100;
                
cout << m[i][j][k] << "\t";
            }
        }
    }
//вычисляем сумму
    
cout << "\n";
    
int max=max_sum(nsizem);
    
cout << "\nМаксимальное значение =" << max;
char s1;
cin >> s1;

RenSit вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
курсовая, трёхмерные кубики с картинками (С++) T_a_m_a_r_a_ Помощь студентам 3 21.01.2009 16:22
Массивы. Limon34 Помощь студентам 6 26.11.2008 13:05