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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2013, 13:45   #1
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию Сортировка на Си

Здраствуйте.Помогите пожалуйста,отсортировать структуру по росту возрастной границы...я понимаю там нужно, как-то через разницу этих чисел сделать ,но не могу понять как?Условие ,данно записи об игрушках и возрастная граница (от 4-7 лет).
нужно сделать примерно так ,что б работало:
Мы вводим
4-7
1-3
10-11
А должно вывести
10-11
1-3
4-7
Заранее спасибо.
Vasya94 вне форума Ответить с цитированием
Старый 10.05.2013, 16:02   #2
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Если (как в вашем случае) границы не накладываются одна на другую - можно даже сортировать по одному пределу. И еще немного не понял: В отсортированном виде же должно быть :
10-11
4-7
1-3

По возрастанию возрастной границы наоборот, или я вас неправильно понял?
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 10.05.2013, 16:33   #3
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Нет вы чуть-чуть не так не поняли смотрите
в 10-11 его возраст 1 ,в 4-7 возраст 3,в 1-3 возраст 2,мне нужно вот по етим числам сортировать...
Vasya94 вне форума Ответить с цитированием
Старый 10.05.2013, 17:09   #4
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Cделайте суктуру, например:
Код:
struct Segment
{
       int leftLimit;// нижняя граница
       int rightLimit;// верхняя граница
       int sub;// разность верхняя - нижняя    
}
Сделайте массив структур и при вводе очередной записи заполняйте поле sub как разность 2х пределов. Потом сортируете массив структур уже по полю sub.
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 10.05.2013, 19:19   #5
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Да вот это все я и понял...только не получаеться...
Код:
void sorted()
{ int i,j,k;
  toys[k].rizn=0;
 
 toy p;
 for(j=0; j<n-1; j++)
   {for(k=0; k<n-1; k++)
     
    toys[k].rizn=(toys[k].yearWith)-(toys[k].yearTo);
    toys[k+1].rizn=(toys[k+1].yearWith)-(toys[k+1].yearTo);
   {
     if((toys[k].rizn)<(toys[k+1].rizn))
      {
       p=toys[k];
       toys[k]=toys[k+1];
       toys[k+1]=p;
 
      }
    }
  }
 }
Vasya94 вне форума Ответить с цитированием
Старый 11.05.2013, 11:15   #6
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Что никто не может помочь?
Vasya94 вне форума Ответить с цитированием
Старый 11.05.2013, 12:07   #7
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Ниче не пойму... это что шибко сложная задача?
Введите в вашу структуру свойство которое показывает разность возрастной границы.
А далее нужно сотрировку сделать всего для одного поля ... хоть пузырем... уж проще некуда.

Либо другой вариант.
Создать новый пустой список для структур.
Перебирая весь массив данных выбирать ниаменьший, сохранять индекс в список, исключать из проверки.
Повторять пока есть хотя бы один не обработанный элемент.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 11.05.2013 в 12:11.
WorldMaster вне форума Ответить с цитированием
Старый 11.05.2013, 12:41   #8
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Так я понял как сделать задачу , первым способом , только что-то не получаеться....
Код:
#include "stdafx.h"
#define n 1
struct toy
{int a;//нижня граница
 int b;//верхня граница
 int c;//разница границ
}toys[n];
void vvod()
{int i;
 for(i=0;i<n;i++)
 {printf("Enter data toys\n");
  printf("Vvedit niz mej\n");
  scanf("%d",&toys[i].a);
  printf("Vvedit verx meji\n");
  scanf("%d",&toys[i].b);
 }
}
void sort()
{
int i;

for(i=0;i<n;i++)
toys[i].c=0;
{toys[i].c=toys[i].b-toys[i].a;
 printf("Rizn\n",toys[i].c);
}
}
/*void print()
{int i;
 for(i=0;i<n;i++)
 {printf("%d-%d %c\n",toys[i].a,toys[i].b,);
 }
}*/



void main()
{vvod();
sort();
}
Vasya94 вне форума Ответить с цитированием
Старый 11.05.2013, 12:48   #9
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

функция сорт должна возвращать отсортированый массив.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 11.05.2013, 13:40   #10
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Вот сделал , но опять же ничего не получаеться...
Код:
#include "stdafx.h"
#define n 2
struct toy
{int a;//нижня граница
 int b;//верхня граница
 int c;//разница границ
}toys[n];
void vvod()
{int i;
 for(i=0;i<n;i++)
 {printf("Enter data toys\n");
  printf("Vvedit niz mej\n");
  scanf("%d",&toys[i].a);
  printf("Vvedit verx meji\n");
  scanf("%d",&toys[i].b);
 }
}
void sort()
{
int i;
toy p;
for(int j=0;j<n-1;j++)
  {for(i=0;i<n-1;i++)
   toys[i].c=0;
     {toys[i].c=toys[i].b-toys[i].a;
	 toys[i+1].c=toys[i+1].b-toys[i+1].a;
	  
}
}

if((toys[i].c)<(toys[i+1].c))
      {
       p=toys[i];
       toys[i]=toys[i+1];
       toys[i+1]=p;
 
}
}
void print()
{int i;
 for(i=0;i<n;i++)
 {printf("%d-%d \n",toys[i].a,toys[i].b);
 }
}



void main()
{vvod();
sort();
printf("Vik meji\n");
print();
}
Vasya94 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Быстрая сортировка(сортировка хаора) с++ LustHunter Помощь студентам 3 07.10.2011 19:37
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57
Сортировка файлов в Explorer vs сортировка в Delphi mutabor Общие вопросы Delphi 11 04.09.2009 14:32