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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2012, 09:43   #1
IVT27
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 14
По умолчанию Упорядочить по алфавиту с++

Помогите разобраться, как упорядочить по алфавиту Фамилии, которые я вывожу. С вводом исходной информации все более понятно, а вот с упорядоченностью я не могу понять как это делается. Вродибы используется пузырьковая сортировка...
Код:
#include "conio.h"
#include <stdio.h>
#include "iostream" 
using namespace std;

struct Student { char FIO[30];                
				 int data;
				 int m[10];
};
void main()
{
	Student a[4];

	for (int i=0;i<4;i++){
		cout<<"Vvedite FIO:"<<endl;
		cin>>a[i].FIO;
		cout<<"Vvedite data ropgdeniay:"<<endl;
		cin>>a[i].data;
	}



	

	getch();

}

Последний раз редактировалось IVT27; 29.11.2012 в 09:56.
IVT27 вне форума Ответить с цитированием
Старый 29.11.2012, 09:57   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

например, перед тем, как их вывести отсортируйте массив Student любым удобным для Вас способом (пузырёк или метод простых обменов, самое простое..)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2012, 10:47   #3
IVT27
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 14
По умолчанию

я подразумеваю что это должно выглядеть как-то так:
for (int i=0;i<4;i++){
if (a[i].FIO[0]==)
{
cout<<a[i].FIO<< " " << endl;
}
//как сдесь указать эту упорядоченность после ==
IVT27 вне форума Ответить с цитированием
Старый 29.11.2012, 14:21   #4
IVT27
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 14
По умолчанию

Не понимаю я как это можно отсортировать. Просмотрел кучу примеров, приведенных на форумах и везде приводятся примеры с одиночными символами и числами... помогите пожалуйста.
IVT27 вне форума Ответить с цитированием
Старый 29.11.2012, 15:25   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
	for (int i=0;i<4;i++){
		cout<<"Vvedite FIO:"<<endl;
		cin>>a[i].FIO;
		cout<<"Vvedite data ropgdeniay:"<<endl;
		cin>>a[i].data;
	}

             // сортируем массив по фамилиям
             Student TempR;

             for (int i=0;i<3;i++) { 
                 for (int j=i+1;i<4;j++) { 
                       if (a[i].FIO< a[j].FIO) {
                         tempR = a[i];
                         a[i] = a[j];
                         a[j] = tempR; 
                       }
                  }
              }

           // вывести массив записей на экран
           for (int i=0;i<4;i++) 
           {
               cout<<a[i].FIO<< " "a[i].data << endl;
           }
p.s. я писал код прямо на форуме, возможны ошибки.
кроме того, c++ я совсем не знаю.
Кстати, вполне возможно, что в C++ есть методы сортировки встроенные в сам язык,стандартные библиотеки/классы...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2012, 15:44   #6
IVT27
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 14
По умолчанию

Serge_Bliznykov.
С вашим кодом выдает 5 ошибок. Я начинающий и исправлять меня код для меня с тем, чем я плохо разобрался очень тяжело
но вот что он выдает за ошибки... но всеравно спс)
1>c:\documents and settings\администратор\рабочий стол\1 задание.cpp(28) : error C2065: 'tempR' : undeclared identifier
1>c:\documents and settings\администратор\рабочий стол\1 задание.cpp(37) : error C2146: syntax error : missing ';' before identifier 'a'
1>c:\documents and settings\администратор\рабочий стол\1 задание.cpp(37) : error C2563: mismatch in formal parameter list
1>c:\documents and settings\администратор\рабочий стол\1 задание.cpp(37) : error C2568: '<<' : unable to resolve function overload
1>c:\documents and settings\администратор\рабочий стол\1 задание.cpp(43) : fatal error C1075: end of file found before the left brace '{' at 'c:\documents and settings\администратор\рабочий стол\1 задание.cpp(12)' was matched
как я понял из всего этого ему нуэно подключить какую-то библиотеку для работы с отсортировкой и больше я ничего не понимаю)
IVT27 вне форума Ответить с цитированием
Старый 29.11.2012, 16:05   #7
IVT27
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 14
По умолчанию

Посоветуйте хоть что-нибудь по отсортировке. Над этим заданием просто сидел уже кучу времени.
IVT27 вне форума Ответить с цитированием
Старый 29.11.2012, 16:16   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
1>c:\documents and settings\администратор\рабочий стол\1 задание.cpp(28) : error C2065: 'tempR' : undeclared identifier
А Вы в коде вот эту строчечку не забыли?
Цитата:
Код:
   Student TempR;

ладно, вывод напишите так:
Код:
// вывести массив записей на экран
           for (int i=0;i<4;i++) 
           {
               cout<<a[i].FIO<< " "<< endl;
           }
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2012, 16:32   #9
IVT27
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 14
По умолчанию

Выдает 1 ошибку.
Вот полностью полученный код:
Код:
#include "conio.h"
#include <stdio.h>
#include "iostream" 
using namespace std;


struct Student { char FIO[30];                
				 int data;
				 int m[10];
};
void main()
{
	Student a[4];

for (int i=0;i<4;i++){
		cout<<"Vvedite FIO:"<<endl;
		cin>>a[i].FIO;
		cout<<"Vvedite data ropgdeniay:"<<endl;
		cin>>a[i].data;
	}

             // сортируем массив по фамилиям
             Student TempR;

             for (int i=0;i<3;i++) { 
                 for (int j=i+1;i<4;j++) { 
                       if (a[i].FIO< a[j].FIO) {
                         tempR = a[i];
                         a[i] = a[j];
                         a[j] = tempR; 
                       }
             

           // вывести массив записей на экран
           for (int i=0;i<4;i++) 
           {
               cout<<a[i].FIO<< " " << endl;
           }
				 }  
				 }
getch();
			 }
ошибка:
1>c:\documents and settings\администратор\мои документы\visual studio 2005\projects\сортировка массивов\сортировка массивов\nachalo.cpp(28) : error C2065: 'tempR' : undeclared identifier
IVT27 вне форума Ответить с цитированием
Старый 29.11.2012, 16:44   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

мой косяк. Регистр букв в имени переменной ВАЖЕН!

Код:
            // сортируем массив по фамилиям
             Student tempR;

             for (int i=0;i<3;i++) { 
                 for (int j=i+1;i<4;j++) { 
                       if (a[i].FIO< a[j].FIO) {
                         tempR = a[i];
                         a[i] = a[j];
                         a[j] = tempR; 
                       }
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка по алфавиту. asmars Общие вопросы C/C++ 3 17.04.2012 00:42
Структуры. Упорядочить по алфавиту Gothika92 Помощь студентам 2 07.01.2011 17:29
Сортировка по алфавиту DimOn4Ik БД в Delphi 3 17.04.2010 06:48
Сортировка по алфавиту ЧИЖ Общие вопросы Delphi 1 16.03.2007 14:17