Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

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

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

Ответ
 
Опции темы
Старый 04.11.2010, 18:29   #1
mego4el
Форумчанин
 
Аватар для mego4el
 
Регистрация: 19.09.2010
Сообщений: 87
Репутация: 3
Вопрос найти новую матрицу (программа)

Добрый вечер. ув. форумчане, есть задание:

Дано действительную квадратную матрицу порядка n. Получить новую матрицу путем замены элементов, сумма индексов которых четная на среднее геометрическое модулей элементов, находящихся на главной диагонали.

по которому была написана программа:

Код:

#include <iostream>
#include <ctime> 
#include <cmath>
 
using std::cout;
using std::cin;
using std::endl;

int sr_geo(int **arr, int n)
{
        int sr_geo=0; 
        float pr=1;
        for(int i=0; i<n; i++)
        {
                for(int j=0; j<n; j++)
                {
                        if(i==j)
                        {
                                pr*=abs(arr[i][j]);
                        }
                }
        }
        sr_geo = (int)exp(log((float)pr)/n);
        return sr_geo; 
}
 
int main()
{    
         srand((unsigned)time(NULL)); 
         int n,i,j;
         int sr;
         int **arr;
         cout<<"Vvedite razmer massiva: ";
         cin>>n;
         arr = new int*[n];
         cout<<"Massiv: "<<endl;
         for(i=0; i<n; i++)
         {
                  arr[i] = new int[n];
                  for(j=0; j<n; j++)
                   {
                     arr[i][j]=rand()%9+1;
                     cout<<arr[i][j]<<"  ";
                        }
            cout<<endl;
         }
         sr = sr_geo(arr,n); 
         cout<<endl;
         cout<<"Sformirovannaya matrica:"<<endl;
         for(i=0; i<n; i++)
         {
                 for(j=0; j<n; j++)
                 {
                         if((i+j)%2==0)
                         {
                                 arr[i][j]= sr;
                         }
                         cout<<arr[i][j]<<"  ";
                 }
                 cout<<endl;
         }
 
         delete arr;
         system("pause");
   return 0;
}

пожалуйста помогите найти ошибки\бессмысленные действия\упростить программу.
возможно кто-нибудь видит более простое решение этой задачи?, буду очень благодарен, спасибо заранее.
mego4el вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на матрицу. Вознаграждение soon-end Помощь студентам 3 31.05.2010 22:41
Программа на матрицу. Вознаграждение soon-end Фриланс 13 20.05.2010 06:46
Найти обратную матрицу. C# MaD1z Помощь студентам 0 23.12.2009 13:47
Как найти обратную матрицу? Энжи Помощь студентам 0 07.12.2009 23:38
Помогите найти обратную матрицу в Pascal Maloiii Помощь студентам 3 20.04.2009 21:39


21:44.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru