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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2010, 15:10   #1
Fantom.as
Пользователь
 
Аватар для Fantom.as
 
Регистрация: 19.04.2010
Сообщений: 62
Сообщение нахождение числа, ближайшего к максимальному/среднему/минимальному

Как в C в массиве из 10 эл-тов, найти число, ближайшее к максимальному, среднему, минимальному.
Меня больше интересует вопрос ближайшего к среднему,
т. к. в двух остальных находим второе минимальное/максимальное и выводим. Я прав?
<--<--<--Нажми на весы слева <---<---<---
Fantom.as вне форума Ответить с цитированием
Старый 12.11.2010, 15:14   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Совсем нет.
Чтобы найти ближайшее, нужно находить разность между максимальным и остальными - и у кого разность будет меньше, тот и ближе к максимальному. Аналогично с минимальным. Да и со средним тоже. Учитывается, что если в массиве несколько максимальных чисел(т.е. допустим что максимальное число 100, а оно встречается например 4 раза) то они в учёт не идут.
Ну, вроде так.
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.11.2010, 17:07   #3
Риндера
Delphi, учу С
Форумчанин
 
Аватар для Риндера
 
Регистрация: 20.10.2010
Сообщений: 178
По умолчанию

Цитата:
<--<--<--Нажми на часики слева <---<---<---
Это весы

По теме: как сказал _-Re@l-_, достаточно вычитать из максимума/минимума/среднего все элементы и находиь наименьшую разность, не равную нулю.
Риндера вне форума Ответить с цитированием
Старый 13.11.2010, 08:27   #4
Fantom.as
Пользователь
 
Аватар для Fantom.as
 
Регистрация: 19.04.2010
Сообщений: 62
По умолчанию

Попробуем, спасибо

тогде еще один вопрос :
надо определить симметричен ли массив. Вот функция, которая это определяет. В чем ошибка? Все время на выходе получается, что массив симметричен
Код:
bool simmetriya(int arr[10])
{ bool flag;
	for (int i=0; i<=5; i++)
	{
		if (arr[i]=arr[9-i]) flag=true;
		else return true;
		return flag;
	}	//end for
}	//end simmetriya
вот вызов в главной функции
Код:
if (simmetriya(arr)) printf("\n Массив симметричен"); else printf("\nмассив НЕ симметричен");
<--<--<--Нажми на весы слева <---<---<---

Последний раз редактировалось Stilet; 13.11.2010 в 11:46.
Fantom.as вне форума Ответить с цитированием
Старый 13.11.2010, 11:47   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
bool simmetriya(int arr[10])
{ 
	for (int i=0; i<=5; i++)
	{
		if (arr[i]!=arr[9-i]) return false;
	}	//end for
 return true;
}	//end simmetriya
Не проверял но я бы так написал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2010, 08:56   #6
Fantom.as
Пользователь
 
Аватар для Fantom.as
 
Регистрация: 19.04.2010
Сообщений: 62
Сообщение

Я нашел ошибку
Код:
bool simmetriya(int arr[10])
{ bool flag;
	for (int i=0; i<=5; i++)
	{
		if (arr[i]==arr[9-i]) flag=true;
		else return false;
	}	//end for
	return flag;
}	//end simmetriya
<--<--<--Нажми на весы слева <---<---<---
Fantom.as вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нахождение цикломатического числа Pavel1992 Общие вопросы C/C++ 1 28.10.2010 18:21
Нахождение хроматического числа Pti44ka Общие вопросы .NET 0 05.05.2010 16:13
Округление числа до ближайшего большего/меньшего из ряда Foxx Microsoft Office Excel 4 24.07.2009 09:50