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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2010, 14:14   #1
Kastet14
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 19
По умолчанию умножение эл-тов верхнетреугольной подматрицы на максимальный эл-т нижнетреугольной, Си

объясните, плиз, как написать на Си программу умножения эл-тов верхнетреугольной подматрицы на максимальный эл-т нижнетреугольной. Эл-ты матрицы - целые числа, размер 1=<N<=8
Kastet14 вне форума Ответить с цитированием
Старый 19.01.2010, 14:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
верхнетреугольной подматрицы
А что это за звэрь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2010, 15:32   #3
Kastet14
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А что это за звэрь?
верхнетреугольная - тот треугольник, который остается выше главной диаганали, нижнетреугольная - то, что ниже главной диаганали.

например:
1 2 3 4
2 3 4 5
3 4 5 6
5 6 7 8

верхнетреугольная:
1 2 3 4
- 3 4 5
- - 5 6
- - - 8
нижнетреугольная:
1 - - -
2 3 - -
3 4 5 -
5 6 7 8

Последний раз редактировалось Kastet14; 19.01.2010 в 15:36. Причина: ошибка в тексте
Kastet14 вне форума Ответить с цитированием
Старый 19.01.2010, 15:52   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ок. Рискну предположить что что-то в этом роде:
Код:
//---------------------------------------------------------------------------

#pragma hdrstop

#include <tchar.h>
#include <iostream.h>
//---------------------------------------------------------------------------

#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
// Массив 5 на 5 
 int a[5][5],mx;
// Начинаем циклы по массиву
 for(int i=0;i<5;i++){
  for(int q=0;q<5;q++){
// Заполняем массив случайными числами
   a[i][q]=rand()/100;
// Если текущий элемент ниже главной диагонали
   if (q<i) {
// Смотрим, максимальный ли он
// Если да то запоминаем
	 mx=(mx<a[i][q])?a[i][q]:mx;
   }
// Выводим на экрам элемент массива
   cout<<a[i][q]<<'\t';
  }
  cout<<'\n';
 }
// Выводим на экрам максимум
 cout<<'\n'<<mx<<'\n';
 // Умножаем
 for(int i=0;i<5;i++){
  for(int q=0;q<5;q++){
// если текущий элемент в верхнем треугольнике
   if (q>i) {
// Умножаем его на максимум
	 a[i][q]=a[i][q]*mx;
   }
   cout<<a[i][q]<<'\t';
  }
  cout<<'\n';
 }
 cin.get();
	return 0;
}
//---------------------------------------------------------------------------
I'm learning to live...

Последний раз редактировалось Stilet; 20.01.2010 в 14:31.
Stilet вне форума Ответить с цитированием
Старый 19.01.2010, 15:55   #5
Kastet14
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 19
По умолчанию

было б здорово на Си
Kastet14 вне форума Ответить с цитированием
Старый 19.01.2010, 15:56   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А я на чем написал?
Это С++, а классический я терпеть не могу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2010, 16:17   #7
Kastet14
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 19
По умолчанию

ну да, я имел в виду просто С
Kastet14 вне форума Ответить с цитированием
Старый 19.01.2010, 16:49   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну извини... Я классический Си уже не пользую лет 7
Впрочим тебе не очень много переделывать вместо cout ставь printf и радуйся
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2010, 16:49   #9
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
...
   if (q<i) {
	 mx=(mx<a[i][q])?a[i][q]:mx;
...
   if (q>i) {
...
1. mx хорошо бы проинициализировать.
2. В сравнениях должны быть <= и >= соответственно. Главная диагональ - учитывается.
Vago вне форума Ответить с цитированием
Старый 19.01.2010, 17:02   #10
Kastet14
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 19
По умолчанию

Stilet, не могли бы вы дать побольше комментариев в коде мне для понимания?
Kastet14 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Максимальный элемент матрицы maloy-rom Помощь студентам 1 24.12.2009 00:17
Максимальный элемент матрицы gessi Паскаль, Turbo Pascal, PascalABC.NET 2 14.09.2009 09:23
Максимальный ключ в таблице REztor Помощь студентам 1 05.04.2009 00:08
Максимальный элемент массива j_Q Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 04.11.2008 22:48