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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2011, 02:02   #1
kidkilla
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 14
По умолчанию массивы(вывод минимальный чисел)

Задать массив их 30 целых двузначных чисел с помощью датчика случайных чисел.
Найти три минимальных элемента (минимальный элемент и два ближайших к нему числа). Записать индексы, найденных элементов в массив и вывести его на экран.

Код:
#include <windows.h>
#include <stdio.h> 
void main()
{ 

const int N=30;	// размер массива
int dig[N]; 
int i; 
int min;
// заполнение массива с помощью датчика случайных чисел
for (i=0; i<=N; i++)
	dig[i]=rand()%100;



for (i=0; i<=N; i++)
{
printf("%d",dig[i]); 
if ((i+1)%N) printf("\n");
else printf("\n");
}
{
	min=dig[10];
	for(i=10;i<N;i++)
	if(dig[i] < min) min=dig[i]; 	
	
printf("min=%d\n",min); 

}
}
проблема в том что могу сделать вывод только 1 минимального числа. рыл литературу какая была ничего не нашел. нужно достать еще 2 мин. числа. как сделать не знаю. надеюсь на ваш совет

Последний раз редактировалось ACE Valery; 06.04.2011 в 01:26.
kidkilla вне форума Ответить с цитированием
Старый 07.04.2011, 10:06   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

самый простой способ - сортировка по возрастанию, и выбрать 3 первых элемента (учитывайте, что могут числа повторяться)

но данный способ Вам не подходит, т.к. в задании указано, что необходимы индексы минимальных чисел

второй способ:
находим минимальный элемент, запоминаем индекс, далее, второй проход исключает из поиска минимальных чисел тот индекс в массиве, к-рый мы нашли, потом третий проход, только уже из поиска исключить 2 индекса
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 07.04.2011, 12:47   #3
kidkilla
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 14
По умолчанию

а не подскажете каким образом можно исключить это число?
kidkilla вне форума Ответить с цитированием
Старый 07.04.2011, 13:59   #4
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

ну я ж написал как

допустим, нашел индекс первого минимального числа, индекс равен 5
второй проход исключает этот индекс из поиска

Код:
for (i = 0; i < N; i++) {
  if (i != 5)
    ...
}
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 09.04.2011, 15:52   #5
kidkilla
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 14
По умолчанию

RUSt88
есть ли смысл прописать прогу далее так чтобы условие отсчитывалось как частный случай то есть
i=2 (к примеру)
а не
i!=2
????
kidkilla вне форума Ответить с цитированием
Старый 10.04.2011, 08:18   #6
EC.cpp
Пользователь
 
Регистрация: 09.04.2011
Сообщений: 30
По умолчанию

Судя по строке:
Код:
dig[i]=rand()%100;
В вашей программе генерируются не факт что все двузначные числа, так как также могут сгенерироваться числа от 0 до 9.
Что касается исходной задачи:
То можно жестко запоминать конкретные 3 элемента и их индексы в процессе генерации случайных чисел - что ускорит конечный поиск для текущей конкретной задачи.
const int N = 30;
dim[N] = (rand %89 ) + 10; //исходный массив
int Min1, Min2, min3; //3 минимальные элемента
unsigned int ind1, ind2, ind3; //индексы 3х минимальных

//-------Далее запоминаем первые три числа и их индексы соответственно
//-------Создаем дальнейший нехитрый алгоритм обхода с 4(четвертого) элемента исходного массива, при этом сравнивая его с предыдущими тремя запомненными соответственно.

P.S. Этот алгоритм позволит точно справится с поставленной перед Вами задачей, но он далеко не универсален.
EC.cpp вне форума Ответить с цитированием
Старый 10.04.2011, 19:53   #7
kidkilla
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 14
По умолчанию

алгоритм записи я и сам преккрасно знаю даже несколько способов
а вот прописать это не выходит вобще ни разу
и изза этого в тупик встаю
kidkilla вне форума Ответить с цитированием
Старый 10.04.2011, 20:07   #8
kidkilla
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 14
По умолчанию

спасибо большое сделал эту прогу наконецто
kidkilla вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод чисел Matt_Tuck Фриланс 11 15.03.2010 23:03
Вывод чисел фибоначчи в процедуре Sparky Помощь студентам 0 20.12.2009 10:41
Вывод простых чисел. MAKEDON Помощь студентам 1 10.03.2009 16:55
Форматированный вывод чисел frankfish Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 04.03.2009 17:59
Вывод целых и десятичных чисел Maycal Общие вопросы C/C++ 2 24.10.2007 12:34