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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2009, 20:12   #1
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию Сортировка по алфавиту

Компилируетса но при запуске выдет ошибку.
Код:
#include <iostream> 
#include <fstream>
#include <string>
#include <stdio.h> 
using namespace std;

int main()
{
	string name[10];	
	int t=0;
	int q;
	ifstream input_file("lala.txt");
	input_file.unsetf(ios::skipws);
	while(!input_file.eof())
	{
	
	    getline(input_file,name[t]); cout<<name[t]<<endl;
		t++;
	}

string maxk=name[0];
int k;
string s;
for(int i=t-1; i>=1; i--)
{
	maxk=name[0];
	for(int j=0; j<=i; j++)
	
		if(name[j]>maxk)
		{
			maxk=name[j];
			k=j;
		}
	if(name[i]<name[i++])
		q=-1;
	if(name[i]>name[i++])
		q=1;
	if(name[i]==name[i++])
		q=0;
	if(q!=0)
	{
		s=name[i];
		name[i]=name[k];
	    name[k]=s;
	}
	
}

for(int i=0; i<t; i++)
cout<<name[i]<<endl;
system("pause");
}
Cpluser вне форума Ответить с цитированием
Старый 27.04.2009, 03:58   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Если не тяжело пройдитесь дебагом и скажите где ошибка.
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 27.04.2009, 22:29   #3
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Прога запускаетса но выдает Unhandled exception at 0x102320fb (msvcr80d.dll) in 333.exe: 0xC0000005: Access violation reading location 0x0041fffc.
Cpluser вне форума Ответить с цитированием
Старый 27.04.2009, 22:52   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так. Вам что, нужно просто отсортировать слова по алфавиту?
Зачем какие-то q, maxk?
Код:
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;

int main()
{
	string name[10];
	int t=0;
	ifstream input_file("test.txt");
	input_file.unsetf(ios::skipws);
	while(!input_file.eof())
	{
	 getline(input_file,name[t]); cout<<name[t]<<endl;
		t++;
	}

cout<<"-------------------"<<endl;
string tmp;
int i,j,k;
for(i=0;i<t-1;i++)
 {
  for(j=i+1,k=i; j<t; j++)
   if(name[j]<name[k]) k=j;
  tmp = name[k];
  name[k] = name[i];
  name[i] = tmp;

 }

for(int i=0; i<t; i++)
 cout<<name[i]<<endl;
system("pause");
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 02.03.2010, 19:18   #5
fral92
Новичок
Джуниор
 
Регистрация: 02.03.2010
Сообщений: 1
По умолчанию

Люди, помогите написать функцию, сортирующую массив строк разной длины по алфавиту, переданный из командной строки (**argv) на классическом языке Си...
PS: qsort не используя.
fral92 вне форума Ответить с цитированием
Старый 03.03.2010, 00:45   #6
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию

quicksort.rar
Держи. "Быстрая сортировка" По идеи ошибок не должно быть, по-моему я исправил ошибку +-1, непомню уже.
с классом LList разберешься, уверен

Код:
/*
list - указатель на список слов
остальные параметры не трогаем, это для рекурсии
*/

void qs(LList * list,bool firstsort,bool req,int pos);
На всякий случай сортировка методом пузырька. Класс LList смотри в атаче выше

Код:

char Chr(int Num)
{
 BYTE b = (int)(Num);
 return (char)b;
}

int Ord(char Word)
{
 BYTE b = Word;
 return b;
}


/*
source - Указатель на список слов
*/
void Sort(LList * source)
{
 short sorted = 1,changed = 0;
 do
 {
  changed = 0;
  for (int i=0;i<source->Count - 1;i++)
  {
    string str1 = source->Strings(i);
    for (int j = 0;j < str1.length();j++)
    {
     string str2 = source->Strings(i+1);
     int s1 = Ord(str1[j]);
     int s2 = Ord(str2[j]);
     if (s1 > s2)
     {
      source->Rewrite(str2,i);
      source->Rewrite(str1,i+1);
      changed = 1;
     }
     else if (s1 < s2) break;

    }
  }
  sorted = !changed;
 } while (!sorted);
}
подпись

Последний раз редактировалось liljon; 03.03.2010 в 00:51.
liljon вне форума Ответить с цитированием
Старый 03.03.2010, 01:12   #7
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

А зачем там напрягаться?
Используй STL алгоритм sort и вся сортировка займёт одну строчку и побыстрее твоей будет
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 03.03.2010, 10:11   #8
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

можно написать ф-ию вставки в список, которая сохраняет упорядоченность по ключу, а потом просто записать отсортированный список куда угодно. Как раз не давно задавали написать такую, хотя бинарная сортировка будет быстрее наверно)
NiCola999 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка по алфавиту в задаче на С++ EwwwA Помощь студентам 3 12.02.2009 19:42
Сортировка слов по алфавиту victorio Microsoft Office Word 7 15.12.2007 19:03
Отсортировать по алфавиту asale Microsoft Office Excel 5 19.11.2007 22:01
Сортировка по алфавиту ЧИЖ Общие вопросы Delphi 1 16.03.2007 14:17