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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2015, 17:15   #1
cuc789
Новичок
Джуниор
 
Регистрация: 13.01.2015
Сообщений: 2
По умолчанию Сортировка по последней букве, С++, Visual Studio

Добрый день. Помогите, пожалуйста, исправить код так, чтобы программа сортировала слова из файла по последней букве. В данный момент программа сортирует по первой букве.

Код:
#include <cstdio>
#include <clocale>
#include <cmath>
#include <string>
#include<conio.h>
#include<iostream>
#include <windows.h>
#define maxline 1000

using namespace::std;

void sort(char* ptr[],int n_lines)
{
    int i,j;
    char *tmp;
    for(i=0;i<n_lines-1;i++)

        for(j=0;j<n_lines-1;j++)
    
            if(strcmp(ptr[j],ptr[j+1])>0)
            {
                tmp=ptr[j];
                ptr[j]=ptr[j+1];
                ptr[j+1]=tmp;
            }
    

}
void write_lines(char* ptr[],int n_lines)
{
    int i;
    char str[100];
    for(i=0;i<n_lines;i++)
    {
    CharToOem(ptr[i],str);
                cout<<str<<endl;
    }
}
void main(void)
{
    FILE *in;
    char str[100];
 
    int counter=0;
    char buf[maxline];
    char *ptr[maxline];

    if((in=fopen("in.txt","rt"))==NULL)
    {
        cout<<"Error";
        return;
    }
      for(counter=0;(!feof(in))&&counter<maxline;counter++)
   {
        fgets(buf,maxline,in);
        if(buf[strlen(buf)-1]=='\n')
        {
         buf[strlen(buf)-1]='\0';
         }
         ptr[counter] = new char[strlen(buf)+1];
         strcpy(ptr[counter],buf);
		
    }
    fclose(in);

  
    sort(ptr,counter);
    write_lines(ptr,counter);
	system("pause");
	
}
cuc789 вне форума Ответить с цитированием
Старый 13.01.2015, 18:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Предположу что так:
Код:
if(ptr[j][strlen(ptr[j])-1]>ptr[j+1][strlen(ptr[j+1])-1])
Хотя что-то в самой сортировке твоей меня смущает...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.01.2015, 10:21   #3
cuc789
Новичок
Джуниор
 
Регистрация: 13.01.2015
Сообщений: 2
По умолчанию

Большое спасибо. Программа работает.
cuc789 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка по второй букве Оксана33 Microsoft Office Excel 14 02.12.2014 13:51
Функции. Сортировка вставками (Visual Studio 2010 C++) evgeny_1991 Помощь студентам 0 14.02.2014 18:42
Сортировка типизированного файла на Microsoft Visual Studio С++ Panda1 Помощь студентам 3 17.02.2013 00:26
Сортировка текста ТОЛЬКО по первой букве Cherry Lady Microsoft Office Excel 1 23.12.2012 04:30
сортировка по первой букве amator_roma Помощь студентам 2 15.11.2010 11:06