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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2011, 17:07   #1
Oleg34
Пользователь
 
Регистрация: 09.09.2011
Сообщений: 48
По умолчанию сортировка в структуре

Здравствуйте! Пытаюсь составить сортировку по алфавиту. В задании от препода есть похожий вариант (хотя я пытался запустить этот вариант, но бесполезно). Поэтому писал код обложившись самоучителями, но в них нет примеров сортировок. В разборе препода был такой кусок кода:
Код:
cout<<"Yporyadocheno po alfavity:"<<endl;
for(i=0;i<q;i++)
{
c='#';
for(e=0;e<q;e++)
{
if(box[e].fn[0]>=c)
 {c=box[e].fn[0]; a=e;};
};
strcpy(box1[i].fn,box[a].fn); // kopirovanie striki
box1[i].no=box[a].no;
box1[i].bd[0]=box[a].bd[0];
box1[i].bd[1]=box[a].bd[1];
box1[i].bd[2]=box[a].bd[2];
box[a].fn[0]='!';
};
Я нигде не могу найти, что значит "c='#';" Вот мой код, но при компиляции он выдает ответ в виде трех вск.знаков !!!. Кто поможет объяснить как должно это работать?
Код:
#include<iostream>
#include<cstring>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h> 
using namespace std;
struct Book
{
	char autor[3];
	char title[10];
	short int year;
	int number;
};
int n=3,e,a;
Book B[3],B1[3];
char c;
int main()
{
for (int i=0; i<n; i++)
{
cout<<"Autor->    ";cin>>B[i].autor;
cout<<"Title->    ";cin>>B[i].title;
cout<<"Date->     ";cin>>B[i].year;
cout<<"Number->   ";cin>>B[i].number;
cout<<"\n";
}
for (int i=0; i<n; i++)
	{
	for (int e=0; e<n; e++)
	int c='#';
		if(B[e].autor[0]>=c)
		 {
			 c=B[e].autor[0]; a=e;
		};
		strcpy(B1[i].autor,B[a].autor); // kopirovanie striki
		B1[i].number=B[a].number;
		B1[i].title[0]=B[a].title[0];
		//B1[i].title[1]=box[a].bd[1];
		//box1[i].bd[2]=box[a].bd[2];
		B[a].autor[0]='!';
		cout<<B[a].autor[0]<<endl;
	};
system("PAUSE");
}

Последний раз редактировалось Stilet; 12.09.2011 в 17:51.
Oleg34 вне форума Ответить с цитированием
Старый 16.09.2011, 21:03   #2
snajper_ro
 
Регистрация: 13.09.2011
Сообщений: 9
По умолчанию

#include<iostream>
#include<cstring>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
//Тот кто ищет всегда находит
struct Book
{
char autor[3];
char title[10];
short int year;
int number;
};
int n=3,e,a;
Book B[3],B1[3];
char c;
int main()
{
for (int i=0; i<n; i++)
{
cout<<"Autor-> ";cin>>B[i].autor;
//cout<<"Title-> ";cin>>B[i].title;
//cout<<"Date-> ";cin>>B[i].year;
//cout<<"Number-> ";cin>>B[i].number;
cout<<"\n";
}
for (int i=0; i<n; i++)
{
char c = '#'; /// сортировка начинается со значение меньше а,то есть она будет по убыванию,можно поменять вывод
// выше была не до конца сформированя идея,надо еще меньше кода легче работать
for (int e = 0 ; e < n ; e++)
{
if(B[e].autor[0] > c)
{
strcpy(B1[i].autor,B[e].autor); // kopirovanie striki
//B1[i].number=B[e].number;
//strcpy(B1[i].title,B[e].title);
//B1[i].year=B[e].year;
//B1[i].title[1]=box[a].bd[1];
//box1[i].bd[2]=box[a].bd[2];
//B[a].autor[0]='!';
c = B[ e ].autor[ 0 ];
a = e;
}
}
cout<<endl<<B1[i].autor[0]<<endl;
B[ a ].autor[ 0 ] = '!';
};

system("PAUSE");
}
snajper_ro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
записи в структуре sasha14486 Общие вопросы C/C++ 3 04.06.2011 00:18
Обращение к структуре jey7 Общие вопросы C/C++ 2 07.01.2010 22:44
Сортировка фамилий в структуре Красавчег))) Общие вопросы C/C++ 2 04.01.2010 01:07
Сортировка строк по алфавиту в структуре с помощью указателей Anarki Общие вопросы C/C++ 2 23.10.2009 19:36
Паскаль: шейкерная сортировка на динамической структуре. kotzebu Фриланс 1 01.05.2009 12:48