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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 02:28   #1
Oliveyra
 
Регистрация: 12.04.2011
Сообщений: 6
Восклицание Минимальное число выше главной диагонали...

Всем привет, помогите пожалуйста решить задачу:

Определить минимальное число Z из элементов действительной матрицы, i, j = 1, ..., 5, расположенные выше главной диагонали, среди строк, которые начинаются с отрицательного элемента.

Спасибо!
Oliveyra вне форума Ответить с цитированием
Старый 12.04.2011, 06:29   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

проблема в чем? где свои наработки?
p51x вне форума Ответить с цитированием
Старый 12.04.2011, 21:23   #3
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

Цитата:
Запомните раз и навсегда: помочь != "решите за меня"!
Во во...
Миллион раз уже такое решали, а потом перерешивали все эти побочные диагонали.... надоели.... Давай с меня за дача, а ты мне сочинение напишешь или физику сделаешь?
ololo-schoolboy вне форума Ответить с цитированием
Старый 12.04.2011, 21:44   #4
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Напишу за символическую плату в $1, skype в профиле.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 12.04.2011, 22:15   #5
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

ТС, у меня сочинение совсем легкое 8-ой класс, всего на 150 слов нада
Сtrl, а счета на веб мани у него все равно нет, не попрется же он вечером к терминалу, тем более многие магазины закрыты
ololo-schoolboy вне форума Ответить с цитированием
Старый 12.04.2011, 22:30   #6
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

А, ладно... Лови!
Код:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

const int M = 5, N = 5;


void mtrx_rand(float[M][N]);
void mtrx_prnt(float[M][N]);
float mtrx_find1(float[M][N]);

int main()
{
	srand(time(0));
	float matrix[M][N];
	mtrx_rand(matrix);	
	mtrx_prnt(matrix);
	printf("found %6.2f", mtrx_find1(matrix));
	getchar();
	return 0;
}

void mtrx_rand(float matrix[M][N])
{
	for (int i = 0; i < M; i ++)
		for (int j = 0; j < N; j ++)
			matrix[i][j] = (rand() / 100.) - (rand() / 100.);
	return;
}

void mtrx_prnt(float matrix[M][N])
{
	for (int i = 0; i < M; i ++)
		for (int j = 0; j < N; j ++)
		{
			printf("%6.2f", matrix[i][j]);
			printf("%c", (j == N-1) ? '\n' : '\t');
		}
	return;
}

float mtrx_find1(float matrix[M][N])
{
	float min;
	bool first_found = false;
	for (int i = 0; i < M; i ++)
		for (int j = 0; j < N; j ++)
		{
			if (i < j) // выше главной диагонали
				if (matrix[i][0] < 0) // строка начинается с отрицательного элемента
				{
					if (first_found)
						min = (matrix[i][j] < min) ? matrix[i][j] : min;
					else
					{
						first_found = true;
						min = matrix[i][j];
					}
				}
		}
	return min;
}
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 12.04.2011, 22:52   #7
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

Код:
if (matrix[i][0] < 0) // строка начинается с отрицательного элемента
лучше это проверить до начала цикла
Код:
if (first_found)
min = (matrix[i][j] < min) ? matrix[i][j] : min;
else
{
first_found = true;
min = matrix[i][j];
}
можно было min=0xFFFFFFFF;

зы а кто мне сочинение напишит ???
ololo-schoolboy вне форума Ответить с цитированием
Старый 12.04.2011, 22:58   #8
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

ololo-schoolboy, тут можно и получше оптимизировать, но тогда наглядность потеряется.
Код:
float mtrx_find1(float matrix[M][N])
{
	float min;
	bool first_found = false;
	for (int i = 0; i < M; i ++)
		if (matrix[i][0] < 0){
			for (int j = 1 + i; j < N; j ++){
				if (first_found)
					min = (matrix[i][j] < min) ? matrix[i][j] : min;
				else{
					first_found = true;
					min = matrix[i][j];
				}
			}
		}
	return min;
}
Ищете информацию по C++?
cplusplus.com

Последний раз редактировалось Сtrl; 12.04.2011 в 23:26. Причина: Прилагаю код.
Сtrl вне форума Ответить с цитированием
Старый 19.04.2011, 22:56   #9
Oliveyra
 
Регистрация: 12.04.2011
Сообщений: 6
По умолчанию

Ребята спасибо огромное! Просто только начали изучать с++ в универе, а нам еще и лекций не читают, короче с++ для меня темный лес, как могу сам изучаю, книжки там пытаюсь читать, вобщем спасибо!
Oliveyra вне форума Ответить с цитированием
Старый 21.04.2011, 22:31   #10
blacktener
Пользователь
 
Регистрация: 15.12.2010
Сообщений: 78
По умолчанию вот тоже

Я щас тоже изучаю с++ и вот для практики сделал упрощенную версию решения.
тут все очень просто - даже функций нету. Зато код читать проще

Код:
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;

const int X = 7;
const int Y = 7;

int main()
{
 srand(time(0));
 int A[X][Y];
 
 for (int i=0;i<X;i++)
  for (int j=0;j<Y;j++)
   A[i][j] = rand()%50-25;
   
 int min = 1000;
 
 for (int j=0;j<Y;j++)
  for (int i=0;i<X;i++)
   if (i<j)
    if (A[0][j]<0)
    {
     if (A[i][j]<min) min = A[i][j];             
    };
    
 for (int j=0;j<Y;j++)
 {
  for (int i=0;i<X;i++)
  cout << setw(4) << A[i][j];
  cout << endl << endl;
 };
 
 cout << endl << min << endl;
 system("PAUSE");
 return 0;   
};
blacktener вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Максимальный элемент выше главной диагонали матрицы (C#) Dj_SheLL Помощь студентам 2 14.02.2011 23:21
Вычисление сумм элементов матрицы А размера n x n, лежащих выше, ниже и на главной диагонали Tomoa Microsoft Office Word 8 04.04.2010 20:18
элементы находящиеся выше главной диагонали warder49 Общие вопросы C/C++ 16 07.03.2010 16:50
вывести элементы выше главной диагонали : Rusl92 Помощь студентам 0 30.10.2009 22:45
Вычислить сумму элементов матрицы, расположенные на главной диагонали и выше нее MariyaVo Паскаль, Turbo Pascal, PascalABC.NET 9 10.05.2009 21:19