Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка вставкой по алфавиту, сортировка слов в предложении 
:(
    Опции темы
6yxank0
Дата 5.6.2008, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.6.2008

Репутация: нет
Всего: нет



Здравствуйте
прошу вас по возможности указать где у меня ошибка вот в этой вот проге

Код

#include<stdio.h>
#include<conio.h>
#include<alloc.h>
#include<string.h>
void main()
{
char **s;
int n,i,k,l,j,h;
clrscr();
printf("enter number of words: ");
scanf ("%d", &n);
s=(char**)malloc((n+1)*sizeof(char*));
for(i=0;i<n;i++)
{
scanf("%s", s[i]);
}
for(k=0;k<n-1;k++)
for(i=n-1;i>0;i--)
{
l=strlen(s[i]);
h=strlen(s[i-1]);
if (l>=h)
{
l=h;
}
for (j=0;j<l;j++)
{
if (s[i][j]<s[i-1][j] || s[i][j]==s[i-1][j])
{
s[n]=s[i-1];
s[i-1]=s[i];
s[i]=s[n];
}
else break;
}
}
printf("otsortirovennoe predlojenie:");
for (i=0;i<n;i++)

printf("%s ", s[i]);

getch();
}



текст задачи: 
Ввести с клавиатуры предложение. Произвести перестановку слов в предложении по алфавиту методом вставки и вывести результат на экран.

программа работает только неправильно немного
почему то иногда дублирует слова, а какие то убирает
среди большинства верно отсортированных слов одно два идут невпопад (более 10 слов не вводил, может буть дальше - хуже)

что у меня здесь неверно подскажите пожалуйста  smile 

так же просьба загляните вот сюда smile 
http://forum.vingrad.ru/forum/topic-215025...y1537393/0.html
PM MAIL   Вверх
rrrFer
Дата 5.6.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: 0
Всего: 1



6yxank0
вот:
Код

#include <iostream>
using namespace std;
void main(){
    char **s,*st=new char[10];
    int n,i,k,l,j,h;
    printf("enter number of words: ");
    scanf ("%d", &n);
    s=new char*[n];
    for(i=0;i<n;i++){
        s[i]=new char[10];
        scanf("%s", s[i]);
    }
    for(k=0;k<n-1;k++)
        for(i=k+1;i<n;i++){
            l=strlen(s[k]);
            h=strlen(s[k]);
            if (l>=h)
                l=h;
            for (j=0;j<l;j++)
                if (s[k][j]<s[i][j]){
                    st=s[i];
                    s[i]=s[k];
                    s[k]=st;
                    break;
                }
                else
                    if(s[k][j]==s[i][j]){}
                    else 
                        break;
        }
    printf("otsortirovennoe predlojenie:\n");
    for (i=0;i<n;i++)
        printf("%s ", s[i]);
    system("pause");
}

неработало, потому что в алгоритме были ошибки smile только new на malloc заменить тебе придется...
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.