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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 16:33   #1
cornis
Новичок
Джуниор
 
Регистрация: 18.12.2012
Сообщений: 1
По умолчанию c++ верхний треугольник матрицы

у меня есть матрица(см. код), как вывести на экран только верхний ее треугольник?
код:
Код:
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <ctime>
#include <stdlib.h>
#include <iostream>
using namespace std;

#include <locale>
int _tmain(int argc, _TCHAR* argv[])
{
setlocale (LC_ALL,"rus");
int i,j;
int **d;
int **b;
int k;
cout<<"Введите размер матрицы: ";
cin>>k;
d=new int*[k];
for( i=0; i<k; i++)
{
d[i] = new int [k];
}
b=new int*[k];
for(int i=0; i<k; i++)
{
b[i] = new int [k];
}
int l=(((1+k)*k)/2)+100;
int *c= new int[l];

srand(time(0));
cout<<"\nИсходные данные:\n";
for(i=0;i<((1+k)*k/2);i++)
{	
c[i]= rand()%20 +1;
printf("%d ",c[i]);
}


cout<<"\nПолучаемая матрица, симметричная главной диагонали:\n";
for(i=0;i<k;i++)
{
for(j=i;j<k;j++)
{
b[i][j]=c[(k-1)*i+j-i*(i-1)/2]; }}
for(i=0;i<k;i++)
{ for(j=0;j<=k;j++)
{
if(i<=j)
d[i][j]=b[i][j];
else
d[i][j]=b[j][i];
}}
for(i=0;i<k;i++)
{ 
for(j=0;j<k;j++)
{ 
printf("%2.d ",d[i][j]);
} 
printf("\n");
}
system("pause");
return 0;
}

Последний раз редактировалось Stilet; 18.12.2012 в 22:29.
cornis вне форума Ответить с цитированием
Старый 18.12.2012, 20:11   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
как вывести на экран только верхний ее треугольник?
Да будет Вам ведомо, что у матрицы целых два "верхних треугольника": элементы над главной диагональю (верхний левый) и над побочной (верхний правый). Какой Вам нужен?

Хотя... Вот Вам два кода циклов:

Код:
for (i=0;i<n;i++)
  for (j=0;j<n-i+1;j++) cout<<a[i][j]

Код:
for (i=0;i<n;i++)
  for (j=i;j<n;j++) cout<<a[i][j]
Определяйте, где какой треугольник.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правый верхний треугольник vbnmrf Помощь студентам 2 20.11.2011 17:17
Выделение динамической памяти под правый треугольник квадратной матрицы Assasin92 Общие вопросы C/C++ 0 30.10.2010 23:14
Переход на верхний катАлог Gapro Свободное общение 6 21.11.2009 16:47
динамически выделить память под верхний треугольник квадратной матрицы juventine Общие вопросы C/C++ 2 12.04.2009 13:06
динамическое выделение памяти под верхний треугольник квадратной матрицы juventine Помощь студентам 2 12.04.2009 13:02