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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2012, 01:29   #1
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию Заменить минимальные элементы на противоположные.

Нужна помощь. Код привел ниже ( рабочий ).
Среда ( оболочка ) Visual C++ 2010.
Суть задачи кратко изложил в шапке.
Что подразумевается под минимальными элементами, два или же больше одинаковых элемента массива. К примеру:
0 1 0 2 3 4 5 . Беда в том что по факту условие то я выполняю, но частично. Вопрос вот в чем как заменить такой же элемент массива максимальным значением ? ( скорее всего я туплю, но ничего в голову не приходит )
Заранее благодарен.

Код:
#include "stdafx.h"
#include <ctime>
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <locale.h>

#define n 10

using namespace std;
void main( )
{
	setlocale(LC_ALL,"Rus");
	int a[n], i=0;
        srand((unsigned)time(NULL));
	for (int i=0; i<n ; i++)
	{
		a[i]=rand()%10;
		cout<<setw(3)<<a[i];
	}
	cout<<"\n";
	int min=0, max=0, temp;
        for (int i=1; i<n ; i++)
	{
		if (a[i]>a[max]) max=i;
		if (a[i]<a[min]) min=i;
	}
	cout<<max<<"\n";
	cout<<min<<"\n";
	temp = a[max];
        a[max] = a[min];
        a[min] = temp;
	 for (int i=0; i<n ; i++)
	{
		  cout<<setw(3)<<a[i];
	}
    _getch();
}
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 20.03.2012, 08:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Примерно так:
Код:
{
	setlocale(LC_ALL,"Rus");
	int a[n], i=0,max,min;
        srand((unsigned)time(NULL));
 
	for (int i=0; i<n ; i++)
	{
		a[i]=rand()%10;
		cout<<setw(3)<<a[i];
		if (a[i]>max || i=0) max=a[i];
		if (a[i]<min || i=0) min=a[i];
	}
	cout<<"\n";
        for (int i=1; i<n ; i++) if (a[i]>max) a[i]=min
	cout<<max<<"\n";
	cout<<min<<"\n";

	 for (int i=0; i<n ; i++)
	{
		  cout<<setw(3)<<a[i];
	}
    _getch();
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. Заменить элементы на противоположные по знаку. кумитэ Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2011 00:07
Определить минимальные элементы в колонках матрицы ONIX2011 C++ Builder 0 31.10.2011 22:01
в массиве все максимальные элементы заменить первым элементом, а все минимальные элементы заменить последним элементом Валерия2701 Паскаль, Turbo Pascal, PascalABC.NET 1 12.10.2011 15:49
найти максимальный и минимальные элементы viknik Помощь студентам 1 01.06.2011 23:12
минимальные элементы Dmitry73 Помощь студентам 1 24.11.2010 23:05