Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти где ключ массива имеет наименьшее значение 
:(
    Опции темы
champion
Дата 3.12.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



У меня есть массив, как найти в нём наименьшее значение? Как отсортировать его по возрастанию? 
Код

struct coords {
 int x;
 int y;
 int length;
 int number;
 struct all {
  int number;
  int length;
 }
};
vector<coords> coords(0);

Как обраться к all? которая в coords? Желательно в форме вектора.

Это сообщение отредактировал(а) champion - 3.12.2006, 12:59


--------------------
user posted image
PM MAIL   Вверх
GIK
Дата 3.12.2006, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 1
Всего: 14



Цитата(champion)

У меня есть массив, как найти в нём наименьшее значение? Как отсортировать его по возрастанию? 

В каком смысле отсортировать по возрастанию? Какой эллемент структуры должен получать меньшее значение а какое большее  smile ???

Цитата(champion)

Как обраться к all? которая в coords? Желательно в форме вектора.

Очень просто, надо сначало обращатся к внешней структуре:
Код

#include <stdio.h>
struct coords {
 int x;
 int y;
 int length;
 int number;
 struct all {
  int number;
  int length;
 } myIN;
}myST;

int main(int argc, char* argv[])
{
 myST.myIN.number=120;
 int massiv[7]= {12, 11, 5, 7, 9, 45, 88} ; 
//сортировка массива на возрастание
 for(int i=0; i<7; i++) {
  for(int k=(i+1); k<7;k++) {
   if(massiv[k]<=massiv[i]) { 
    int ran=massiv[i];
    massiv[i]=massiv[k];
    massiv[k]=ran;
  }
 }
}

    return 0;
}


Это сообщение отредактировал(а) GIK - 3.12.2006, 14:54


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
Rockie
Дата 3.12.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



Цитата(champion @  3.12.2006,  12:50 Найти цитируемый пост)
У меня есть массив, как найти в нём наименьшее значение? 

Код
#include<stdio.h>

#define N 10      

int main(){
 int a[N] = {4,2,3,11,5,7,6,8,11,7};
 int i, min = a[0];

 for(i=1;i<N;i++)
  if(a[i]<min) min=a[i];

 printf("%d ", min);

 char c = getchar();
 return 0;
}


Прикольно названа тема:
Цитата
Найти где ключ массива имеет наименьшее значение

В array[0], но можно еще меньше


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Любитель
Дата 3.12.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Раз юзаем векторы => юзаем плюсы.
Значит перегружаем оператор < для нашей структуры:
Код

bool operator<(const coords& c1, const coords& c2)
{
   // здесь твои критерии сравнения
}

После инклюдим <algorithm> и радуемся могуществу std::min_element и std::sort.


--------------------
PM MAIL ICQ Skype   Вверх
champion
Дата 3.12.2006, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



Что-то я ничего не понял по поводу того, как обратится к all smile
А так респект всем кто ответил, все учёл. 
А вот насчет all.
Суть такова, что я должен к нему обращаться так:
coords[0].all[0].number к примеру
coords[0].all[1].length и т.п.
Но как сделать правильно такую структуру? Как её объявить? А вектор нужен, чтобы изменять размер структуры.



--------------------
user posted image
PM MAIL   Вверх
zkv
Дата 4.12.2006, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(champion @  3.12.2006,  18:26 Найти цитируемый пост)
Суть такова, что я должен к нему обращаться так:
coords[0].all[0].number к примеру
coords[0].all[1].length и т.п.

Код

struct ALL {
  int number;
  int length;
 };


struct COORDS {
 int x;
 int y;
 int length;
 int number;
 ALL all[100]; //или  ALL *all;  если размер менять динамически, или vector<ALL> all;
};


Это сообщение отредактировал(а) zkv - 4.12.2006, 19:29
PM MAIL   Вверх
champion
Дата 10.12.2006, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



С вектором плз можно поподробнее. С массивом память жалко. Как написать?
Код

struct ALL {
 int number;
 int length;
};
struct coords {
 int x;
 int y;
 int number;
 ALL *all;
};
vector<coords> coords(0);
vector<ALL> all(0);

Как теперь к all обратися через  coords? coords.all оишбку выдает


--------------------
user posted image
PM MAIL   Вверх
zabivator
Дата 10.12.2006, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 7.6.2006
Где: нск

Репутация: 1
Всего: 2



champion,  smile . all, как он объявлен у тебя - этотип. Если ты хочешь обращаться к ее полям через что-то типа [x].all[y].number, тогад нужно по-другому децл ( объявить член в структуре данного типа ):
Код

struct coords
{
//...
struct All
{
//...
};
std::vector<All> all;
};

Уж про то, как stl пользоваться, ты уж извини, но очень ломает писать. Прочти у Страуса главу про стандартные алгоритмы.
--------------------
#include <zabivator>int main( int, char * [] ){   while( Zabivator::жив() ) Zabivator::моск()++;   return 0;}
PM MAIL WWW ICQ   Вверх
champion
Дата 11.12.2006, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 26.1.2005

Репутация: нет
Всего: 2



Код

struct readed {
 int _count;
 int _from;
 int _to; 
 int _k;
 int _X;
 struct all {
  int _num; 
  int _len;
 };
 vector<all> all;
};
vector<readed> readed(0);

Все отлично smile Респект!


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1684 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.