Форум программистов, компьютерный форум CyberForum.ru

Cортировка строк в алфавитном порядке - C++

Восстановить пароль Регистрация
 
Lisha
Сообщений: n/a
04.12.2011, 17:56     Cортировка строк в алфавитном порядке #1
Здравствуйте. Подскажите, пожалуйста, в проге ошибку: выдает два раза "Enter some string:" и считывает только 2 строки. Где ее искать?(

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# include <stdio.h>
# include <conio.h>
# include <cstring>
 
int main ()
{
    int N;
    printf("Enter N=");
    scanf("%d",&N);
    char **p=new char* [N];
    char buf[256];
    int L;
    for (int i=0;i<N;i++)
    {
    printf("Enter some string:");
    gets(buf);
    L=strlen(buf);
    p[i]=new char[L+1];
    strcpy(p[i],buf);
    }
    for (int i = 0; i<N-1; i++)
      if (strcmp(p[i],p[i+1])>0) 
        {
            char *temp;
            temp=p[i];
            p[i]=p[i+1];
            p[i+1]=temp;
        }
 
    for (int i = 0; i<N; i++)
        printf("%s\n", p[i]);
 
 
   _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 19:44     Cортировка строк в алфавитном порядке #2
Lisha, перед каждым gets напишите
C
1
fflush (stdin);
Сделаю маленькую оговорку: если Вы используете компилятор под windows (ну там студия)
Lisha
Сообщений: n/a
05.12.2011, 11:46     Cортировка строк в алфавитном порядке #3
go, спасибо большое, работает!))
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.12.2011, 12:42     Cортировка строк в алфавитном порядке #4
не используй fflush(stdin) см здесь

C++
1
    scanf("%d%*c", &N);
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
05.12.2011, 17:17     Cортировка строк в алфавитном порядке #5
accept, мы уже определились, если компилятор поl виндовс - можно!!!

Цитата Сообщение от Lisha Посмотреть сообщение
спасибо большое, работает!))
Пожалуйста.

Добавлено через 47 секунд
accept, scanf и создан для того, чтобы считывать до пробела, и не надо этого избегать. Уже лучше fgets
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.12.2011, 23:15     Cортировка строк в алфавитном порядке #6
Цитата Сообщение от go Посмотреть сообщение
accept, мы уже определились, если компилятор поl виндовс - можно!!!
компилятор для уиндоус точно так же может не включать эту возможность
он свой компилятор не написал, и нельзя, чтобы он думал, что это стандартная возможность

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
scanf и создан для того, чтобы считывать до пробела
у scanf() больше возможностей
можно использовать fgets() + sscanf(), но у него это необязательно
Yandex
Объявления
05.12.2011, 23:15     Cортировка строк в алфавитном порядке
Ответ Создать тему
Опции темы

Текущее время: 20:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru