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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2010, 22:05   #1
{qwerty
Новичок
Джуниор
 
Регистрация: 11.10.2010
Сообщений: 2
По умолчанию Матрица вещественных чисел

Помогите решить задачу.
Дана матрица вещественных чисел. Найти максимальный элемент и наиболее удалённый от него (по значению) элемент матрицы. Поиск осуществлять в квадратном контуре, центром которого является максимум, а длина стороны - три элемента массива.
Вот мой код:


#include "stdafx.h"
#include "stdlib.h"
#include "conio.h"

void main()
{
int i,j;
srand(0);
const int m=8,n=6;
float a[m][n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
a[i][j]=(double)rand()/(RAND_MAX+1)*(10-(-2))+(-2);
}
for(i=0;i<m;i++)
{
for (j=0;j<n;j++)
printf(" %5.1f",a[i][j]);
printf("\n");
}
float max=a[0][0];
int indmx=0;
int indmy=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(max<a[i][j])
max=a[i][j];
indmx=i;
indmy=j;
}
}
float min=a[indmx-1][indmy-1];
for(i=indmx-1;i<m;i++)
{
for(j=indmy-1;j<n;j++)
{
if(min>a[i][j])
min=a[i][j];
}
}
printf("max=%2.1f\nmin=%2.1f\n",max ,min);
getch();
}
{qwerty вне форума Ответить с цитированием
Старый 13.10.2010, 00:49   #2
_ILYA_
Пользователь
 
Аватар для _ILYA_
 
Регистрация: 12.10.2010
Сообщений: 79
По умолчанию

// test_2.cpp: определяет точку входа для консольного приложения.
//

Код HTML:
#include "stdafx.h"
#include "stdlib.h"
#include "conio.h"

int _tmain(int argc, _TCHAR* argv[]) {
	int i,j;
	//srand(0);
	const int m=8,n=6;
	float a[m][n];
	for(i=0;i<m;i++) {
		for(j=0;j<n;j++)

			/* псевдо матиматический бред
			a[i][j]=(double)rand()/(RAND_MAX+1)*(10-(-2))+(-2); } */

			// просто и ясно 
			a[i][j]=(double)rand()/0xFFF; }

	for(i=0;i<m;i++) {
		for (j=0;j<n;j++)
			printf(" %5.1f",a[i][j]);
		printf("\n"); }
	float max=a[0][0];
	int indmx=0;
	int indmy=0;
	/* старый код
	for(i=0;i<m;i++) {
		for(j=0;j<n;j++) {
			if(max<a[i][j]) 
				max=a[i][j];
			indmx=i;
			indmy=j; } } */

	// новый код
	for(i=0;i<m;i++) {
		for(j=0;j<n;j++) {
			if(max<a[i][j]) {			// здесь взять в скобки
				max=a[i][j];
				indmx=i;
				indmy=j; } } }			// здесь закрыть дополнительную скобку

	/* таким образом запись максимального значения и его индекса получается одним блоком
	   раньше он всегда записывал последние значения i и о */

	/* старый код
	float min=a[indmx-1][indmy-1];
	for(i=indmx-1;i<m;i++) {
		for(j=indmy-1;j<n;j++) {
			if(min>a[i][j]) min=a[i][j]; } } */

	// новый код
	float min=a[indmx-1][indmy-1]; 
	for(i=indmx-1;i<indmx+2;i++) {		// изменено услови i<m на indmx+2
		for(j=indmy-1;j<indmy+2;j++) {	// изменено условие j<n j<indmy+2
			if(min>a[i][j]) min=a[i][j]; } }

	/* таким образом проверяются все числа в требуемой области
	   раньше область была не верна */

	printf("max=%2.1f\nmin=%2.1f\n",max ,min);
	getch();
	return 0;
}
Оформляй код так чтобы другим не было лень его читать все в кучу это хамство и неуважение к тем кого ты спрашиваеш. Стебя + в карму
Имею хитрый план по личному обогащению

Последний раз редактировалось _ILYA_; 13.10.2010 в 00:56.
_ILYA_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив вещественных чисел ~Mi@mi~ Помощь студентам 2 11.10.2010 21:16
дан массив вещественных чисел, матрица newgener Помощь студентам 5 26.05.2010 17:00
Генератор ВЕЩЕСТВЕННЫХ чисел в С++ Kotjona Помощь студентам 4 08.05.2010 00:24
Файл вещественных чисел. toybike Общие вопросы C/C++ 8 10.12.2009 20:02
Файл вещественных чисел bullvinkle Общие вопросы C/C++ 1 18.06.2009 01:31