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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2011, 11:51   #1
Gothika92
 
Регистрация: 24.11.2010
Сообщений: 6
По умолчанию Структуры. Упорядочить по алфавиту

ОС: Windows Vista
Компилятор: Turbo C, Borland C++
Здравствуйте.
Задание: Дан список сотрудников, надо упорядочить их по алфавиту...
Проблема в том что упорядочить по адресу получается,а по фамилии незнаю как... помогите пожалуйста(т.е тут то сравнение с числами,а мне надо с буквами)

Код:
#include <stdio.h>
#include <string.h>
#define LEN 4

typedef struct {
     struct {
	    char fam[40];
	    char name[20];
	    char otc[25];
	    } fio;
     struct {int day, mn, yr;} date;
     int godpos;
     int money;
     struct {
	    char ulica[20];
	    int dom, kv;
	    } adr;
	       } man;
man sot[LEN];

void vvod(void)
{
int i;
for(i=0; i<LEN; i++)
	{
	printf("Vvodim sotrudnika # %d\n", i+1);
	puts("Familia:");
	scanf("%s", sot[i].fio.fam);
	puts("Imya:");
	scanf("%s", sot[i].fio.name);
	puts("Otchestvo:");
	scanf("%s", sot[i].fio.otc);
	puts("Data Rozdenia: den");
	scanf("%d", &sot[i].date.day);
	puts("Data Rozdenia: mesyac");
	scanf("%d", &sot[i].date.mn);
	puts("Data Rozdenia: god");
	scanf("%d", &sot[i].date.yr);
	puts("God postupleniya v firmu:");
	scanf("%d", &sot[i].godpos);
	puts("Razmer oklada:");
	scanf("%d", &sot[i].money);
	puts("Adres: ulica");
	scanf("%s", sot[i].adr.ulica);
	puts("Adres: dom");
	scanf("%d", &sot[i].adr.dom);
	puts("Adres:kvartira");
	scanf("%d", &sot[i].adr.kv);
	}
}

void sort(void)
{
int i, j;
for (i = 0; i < LEN; ++i)
 {
  for (j = LEN - 1; i < j; --j)
   {
    if (strcmp(sot[i].adr.ulica, sot[j].adr.ulica) < 0)
       {
       man tmp = sot[i];
       sot[i] = sot[j];
       sot[j] = tmp;
       }
   }
 }
}

void list(int i)
{
puts("--------------------------");
printf("%s %d %d\n", sot[i].adr.ulica, sot[i].adr.dom, sot[i].adr.kv);
}

void main()
{
int i;
vvod();
puts("Spisok, uporyad. po adresam\n");
sort();
for (i=0; i<LEN; i++)
  {
  list(i);
  }
}
Gothika92 вне форума Ответить с цитированием
Старый 07.01.2011, 12:40   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Тут тоже сравнение с буквами, так-то )
Вместо улицы используй фамилию, вот и все.
Son Of Pain вне форума Ответить с цитированием
Старый 07.01.2011, 17:29   #3
ZhekaSLK
 
Регистрация: 07.12.2010
Сообщений: 7
По умолчанию

Дана строка. Напечатать в алфавитном порядке все слова, имеющие заданную длинну n. Помогите решить. Я не пойму как слова выводить в алфавитном порядке.
ZhekaSLK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка по алфавиту NuR1k БД в Delphi 5 21.08.2010 19:14
сортировка по алфавиту на си++ Craz Помощь студентам 2 01.10.2009 23:33
Отсортировать по алфавиту Rio309 Помощь студентам 2 09.03.2008 22:52
Отсортировать по алфавиту asale Microsoft Office Excel 5 19.11.2007 22:01
Сортировка по алфавиту ЧИЖ Общие вопросы Delphi 1 16.03.2007 14:17