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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2010, 22:28   #1
Красавчег)))
Пользователь
 
Аватар для Красавчег)))
 
Регистрация: 02.01.2008
Сообщений: 67
По умолчанию Сортировка фамилий в структуре

Здравствуйте. у меня такая проблема. Нужно что бы перед записью в файл фамилии в структуре отсортировались в алфавитном порядке. Подскажите пожалуйста как это сделать.
вот код:
Код:
#include <stdio.h>
#include <iostream>
using namespace std;

typedef struct mans
{
	char fam[20];
	int age;
}man;

man student[5];

int main()
{
	for(int i = 0; i < 5; i++)
            {
		cout << "Enter lastname of student: "<< endl;
		cin >> student[i].fam;
		cout << "Enter age of student: "<< endl;
		cin >> student[i].age;
            }

      
        FILE *f;
	f = fopen("file.txt", "w");
        for (int j = 0; j<5; j++)
        {
        fprintf(f, "%s %d\r\n", student[j].fam, student[j].age);
        }
   fclose(f);
}
Красавчег))) вне форума Ответить с цитированием
Старый 04.01.2010, 00:14   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Вобщем вот:
Код:
#include "stdafx.h"
#include <iostream>
#include <string.h>

using namespace std;

typedef struct mans
{
	char fam[20];
	int age;
}man;


int _tmain(int argc, _TCHAR* argv[])
{
	man student[5];
	for(int i = 0; i < 5; i++)
    {
		cout<<"Enter age of student: "<<i+1<< endl;
		(cin>>student[i].age).get();
		cout<<"Enter lastname of student: "<<i+1<< endl;
		cin.getline(student[i].fam,10);
    }

//Начало сортировки

	char *temp = (char*)malloc(20*sizeof(char));

    for (int i=0; i<5; i++)
	{
		for(int j=i; j<5; ++j)
			if (strcmp(student[j].fam,student[i].fam)<0)
			{
				strcpy (temp,student[i].fam);
				strcpy (student[i].fam,student[j].fam);
				strcpy (student[j].fam,temp);
			}
	}

//Конец сортировки

    FILE *f;
	f = fopen("file.txt", "w");
    for (int j = 0; j<5; j++)
		fprintf(f, "%s %d\r\n", student[j].fam, student[j].age);
	fclose(f);

	cin.get();
	return 0;
}
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 04.01.2010, 01:07   #3
Красавчег)))
Пользователь
 
Аватар для Красавчег)))
 
Регистрация: 02.01.2008
Сообщений: 67
По умолчанию

Огромное спасибо!!!! все отлично работает!!
Красавчег))) вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка строк по алфавиту в структуре с помощью указателей Anarki Общие вопросы C/C++ 2 23.10.2009 19:36
Окончания фамилий Mr G@D JavaScript, Ajax 8 16.10.2009 15:46
Выборка из списка фамилий определенных фамилий KNatalia Microsoft Office Excel 6 28.09.2009 05:31
Паскаль: шейкерная сортировка на динамической структуре. kotzebu Фриланс 1 01.05.2009 12:48
количество фамилий в списке Гуля Паскаль, Turbo Pascal, PascalABC.NET 8 29.04.2008 13:01