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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2010, 22:43   #1
KyJIJIEP
Пользователь
 
Аватар для KyJIJIEP
 
Регистрация: 17.05.2010
Сообщений: 20
По умолчанию Матрица

Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов, которые лежат на той же строке и столбце.
Прога считает сумму элементов в строке а вот как переделать что-бы приплюсовала и столбец....

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>

int const n=10;
int matr[n][n];

void init()
{
	int i,j;
//	randomize();
	for (i=0; i<n; i++)
	for (j=0; j<n; j++)
	matr[i][j]=random(100);
}

void print()
{
	int i,j;
	for (i=0; i<n; i++)
	{
		for (j=0; j<n; j++)
		{
		printf("%4i",matr[i][j]);
		cout<<" ";
		}
		cout<<"\n";
	}
}

void sum()
{
	int i,j,s;
	   for (i=0; i<n; i++)
	{
		s=0;
		for (j=0; j<n; j++)
		s+=matr[i][j];
		matr[i][n-i-1]=s-matr[i][n-i-1];
	}
}

void main()
{
 clrscr();

 init();

 cout<<"Vuhidna matruzya: "<<"\n\n";
 print();

 sum();

 cout<<"\n"<<"Shukana matruzya:"<<"\n\n";
 print();

 getch();
}
KyJIJIEP вне форума Ответить с цитированием
Старый 12.06.2010, 22:53   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
for (j=0; j<n; j++)
s+=matr[i][j] + matr[j][i];
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 12.06.2010, 23:02   #3
KyJIJIEP
Пользователь
 
Аватар для KyJIJIEP
 
Регистрация: 17.05.2010
Сообщений: 20
По умолчанию

Это ты по главной диагонали)) а мне надо по побочной))
KyJIJIEP вне форума Ответить с цитированием
Старый 12.06.2010, 23:12   #4
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Что такое побочная диагональ?
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 12.06.2010, 23:48   #5
KyJIJIEP
Пользователь
 
Аватар для KyJIJIEP
 
Регистрация: 17.05.2010
Сообщений: 20
По умолчанию

1 2
2 1

там где 2 то побочная диагональ...
KyJIJIEP вне форума Ответить с цитированием
Старый 13.06.2010, 00:52   #6
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>

using namespace std;

int const n=2;
int matr[n][n],tempMatr[n][n];

void init()
{
	int i,j;
//	randomize();
	for (i=0; i<n; i++)
	for (j=0; j<n; j++)
	{
		matr[i][j]=rand() % 100;
		tempMatr[i][j] = matr[i][j];
	}
}

void print()
{
	int i,j;
	for (i=0; i<n; i++)
	{
		for (j=0; j<n; j++)
		{
		printf("%4i",matr[i][j]);
		cout<<" ";
		}
		cout<<"\n";
	}
}

void sum()
{
	int i,j,s;
	for (i=0; i<n; i++)
	{
		s=0;
		for (j=0; j<n; j++)
			s+=tempMatr[i][j] + tempMatr[j][i];
		matr[i][n-i-1]=s-tempMatr[i][n-i-1];
	}
}

void main()
{

 init();

 cout<<"Vuhidna matruzya: "<<"\n\n";
 print();

 sum();

 cout<<"\n"<<"Shukana matruzya:"<<"\n\n";
 print();

 getch();
}
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 13.06.2010, 01:26   #7
KyJIJIEP
Пользователь
 
Аватар для KyJIJIEP
 
Регистрация: 17.05.2010
Сообщений: 20
По умолчанию

не выходит... числа не правильные выходят сам попробуй добавь))
KyJIJIEP вне форума Ответить с цитированием
Старый 13.06.2010, 04:19   #8
justso
Инженеришка
Форумчанин
 
Аватар для justso
 
Регистрация: 18.05.2010
Сообщений: 147
По умолчанию

На вот заново нацарапаная. Не люблю коды разбирать.

Код:
#include <iostream>
#include <ctime>
#include <cstdlib>
#define MAX 100
using namespace std;


int main(){
    int matrica[MAX][MAX], i, j, array[MAX], n;
    srand(time(NULL));
    cout <<"Vvedite razmer matrici NxN, N = ";
    cin >> n;
    
    for(j=1; j<=n; j++){
             for(i=1; i<=n; i++){
             matrica[i][j] = rand()%10; //Тут для наглядности задано на мелкие числа
                                                  //Чтоб числа увеличить, замени 10 на что нить 
                                                  //типа 100 или 999 или еще чего больше
             if(rand()%2)             //Это чтоб иногда отрицательные тож были. Если не надо убери эту и следующую строчки
             matrica[i][j] *= (-1);
             }}
             cout << "\nVasha Matrica: \n\n";
             
     for(j=1; j<=n; j++){
             for(i=1; i<=n; i++){
             cout << matrica[i][j] << "  ";
             }
             cout << endl;
             }
             
     for(i=1; i<=n; i++)
     array[i] = 0;
             
     for(i=1; i<=n; i++){
               for(j=1; j<=n; j++){
      array[i] += matrica[j][i];
      }}
      for(i=1; i<=n; i++){
               for(j=1; j<=n; j++){
      array[i] += matrica[n-i+1][j];
      }}
      
      for(j=1; j<=n; j++){
             for(i=1; i<=n; i++){
                      if(i==j)
                      matrica[n-i+1][j] = array[i];
                      }}
     cout << "\nVasha Novaya Matrica: \n\n";
             
     for(j=1; j<=n; j++){
             for(i=1; i<=n; i++){
             cout << matrica[i][j] << "  ";
             }
             cout << endl;
             }
             
     system("pause");
     return 0;
     }
Ацко 342512564: Если по делу - то в случае острой необходимости. Если просто так - то в любое время.

Последний раз редактировалось justso; 13.06.2010 в 04:21.
justso вне форума Ответить с цитированием
Старый 13.06.2010, 11:47   #9
KyJIJIEP
Пользователь
 
Аватар для KyJIJIEP
 
Регистрация: 17.05.2010
Сообщений: 20
По умолчанию

Я пользуюсь Борленд С и у меня нету #include <ctime>
#include <cstdlib> таких библиотек...
Да и считает оно не правильно....
KyJIJIEP вне форума Ответить с цитированием
Старый 13.06.2010, 13:18   #10
Pavelib
Пользователь
 
Регистрация: 30.05.2010
Сообщений: 47
По умолчанию

Заного состряпанный код, только он у меня элементу побочной диагонали присваивает значение суммы всех элементов находящихся на строке и столбце элемента, включая в сумму элемент побочной диагонали исходной матрицы, чтобы это исключить надо добавить два несложных условия, думаю сам справишься.
Код:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int main()
{
    int n=0;
    cout<<"vvedite kolichestvo elementov"<<"\n";
    cin>>n;
    int **mas=new int *[n];
    for(int i=0;i<n;i++){
        mas[i]=new int [n];
    };
    for(int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            mas[i][j]=rand()%10;
            cout<<"  "<<mas[i][j];
        }
     cout<<"\n";
    }
        for (int i=0;i<n;i++){
            int s=0,k=0;
            for(k=0;k<n;k++){
                s=s+mas[i][k];
            };
            for(k=0;k<n;k++){
                s=s+mas[k][n-(i+1)];
            };
            mas[i][n-(i+1)]=s;
        }
    cout<<"novaya matricha \n";
    for(int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            cout<<"  "<<mas[i][j];
        }
     cout<<"\n";
    };
    return 0;
}
Pavelib вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11
Матрица Almost456 Паскаль, Turbo Pascal, PascalABC.NET 11 07.12.2008 02:04