Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Turbo C++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

astrashumi



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здрасте, вы не подскажите как создать целочисленный массив А?

Всего записей: 31 | Зарегистр. 12-01-2005 | Отправлено: 03:29 16-01-2005
oSLikus

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
#define N 100
 
int A[N];

Всего записей: 82 | Зарегистр. 14-12-2004 | Отправлено: 14:35 16-01-2005
astrashumi



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо oSLikus.
Единственный человек который мне хоть чем-то помог на этом форуме.
Допустим мы его сформировали, а как теперь найти там два наименьших элемента? Спасибо.
 

Всего записей: 31 | Зарегистр. 12-01-2005 | Отправлено: 20:37 16-01-2005
KiRiK_de_Ch



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
http://www.sources.ru/cpp/faqs/58.htm

Всего записей: 124 | Зарегистр. 05-12-2004 | Отправлено: 20:50 16-01-2005
astrashumi



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо брат. Блин для меня это слишком круто, а как это записать можно? если условие задачи звучит вот так:Дан целочисленный массив А. Найти в нем два наименьших элемента.  
 
#define N 100  
 
int A[N];
 
а дальше?

Всего записей: 31 | Зарегистр. 12-01-2005 | Отправлено: 22:40 16-01-2005
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
astrashumi
Да ничего крутого по ссылке KiRiK_de_Ch нет, это элементарные варианты. Возьми хотя бы первую функцию сортировки пузырьком по ссылке http://www.sources.ru/cpp/faqs/59.htm
И вызови её для своего массива. После сортировки элементы с индексами 0 и 1 будут наименьшими.

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 22:47 16-01-2005 | Исправлено: EZH, 22:47 16-01-2005
KiRiK_de_Ch



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
После сортировки элементы с индексами 0 и 1 будут наименьшими.

Вот!
 
На самом деле можно не сортировать, а просто поискать..
Потребуется всего лишь один пробег по массиву.

Всего записей: 124 | Зарегистр. 05-12-2004 | Отправлено: 23:02 16-01-2005
oSLikus

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сортировать для поиска двух минимальных - это круто )
 
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
#define N 100
 
void main() {
int A[N];
int min1,min2;
int i;
 
srand((unsigned int)time());
for(i=0;i<N;i++) A[i] = rand();
 
min1 = min2 = A[0];
for(i=1;i<N;i++) {
if(A[i]<min2) {
min1 = min2;
min2 = A[i];
}
}
 
}

Всего записей: 82 | Зарегистр. 14-12-2004 | Отправлено: 01:02 17-01-2005
KiRiK_de_Ch



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
oSLikus, поторопился.
 
не
for(i=1;i<N;i++) {  
if(A[i]<min2) {  
min1 = min2;  
min2 = A[i];  
}  
}  
 
а
 
for (i=1;i<N;i++)
{  
  if (A[i]<min2)
  {  
    min1 = min2;  
    min2 = A[i];  
  };
  else if (A[i]<min1)
    min1 = A[i];
}  
В этом случае min1>=min2, и оба они минимальные.
 
Только вот обычно поиск заключается не в значениях элементов, а в их номерах, поэтому лучше сделать так:
 
min1 = min2 = 0;
for (i=1;i<N;i++)
{  
  if (A[i]<A[min2])
  {  
    min1 = min2;  
    min2 = i;  
  };
  else if (A[i]<A[min1])
    min1 = i;
}  
А сейчас A[min1]>=A[min2], и оба они - номера минимальных.

Всего записей: 124 | Зарегистр. 05-12-2004 | Отправлено: 01:53 17-01-2005
astrashumi



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо парни!!! Постинг oSLikus при компиляции программа ругается на значение Min1, типа его там нет. Ща буду пробывать по технологии KiRiK_de_Ch, кстати и ему огромное спасибо.  

Всего записей: 31 | Зарегистр. 12-01-2005 | Отправлено: 18:48 17-01-2005
astrashumi



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот правильное решение всей задачи, у мамки на работе оказался гений какой-то, за что ему огромное спасибо. Если кому интерессно посмотрите.
 Условие :  Дан целочисленный массив А. Найти в нем два наименьших элемента.  
 Решение:
 
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
 
#define N 100
 
void main(void)
{
 
  int Massiv[N];
  int n=0;
  while((n<2)||(n>100)){
     clrscr();
     cout << "Enter n(2..100) = ";
     cin  >> n;
  }
  cout << "\nMassiv : \n\n";
  randomize();
  for(int i=0; i < n; i++){
    Massiv[i] = random(10);
    cout << Massiv[i] << " ";
  }
  cout << "\n\n";
  int min1;
  int min2;
 
  if(Massiv[0] > Massiv[1]){
    min1 = Massiv[1];
    min2 = Massiv[0];
  }else{
    min2 = Massiv[1];
    min1 = Massiv[0];
  }
 
  for (i=2; i < n; i++){
     if(Massiv[i] < min2){
        if(min1 != Massiv[i]){
  min2 = Massiv[i];
  if(min2 < min1){
     int m = min1;
     min1 = min2;
     min2 = m;
  }  
        }
     }
  }
  cout << "\nResult:\n\nmin1 = " << min1 <<"\nmin2 = "<< min2 <<"\n\n";
  cout <<"Press Key for EXIT\n";
  getch();
}
 
 
это работает!!!

Всего записей: 31 | Зарегистр. 12-01-2005 | Отправлено: 02:13 21-01-2005
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Turbo C++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru