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

[C++] Cтроки - C++

Восстановить пароль Регистрация
 
NinGAZ
13 / 13 / 1
Регистрация: 27.07.2011
Сообщений: 162
29.11.2011, 23:37     [C++] Cтроки #1
Hi all! не могу понять свою ошибку,помогите. суть: есть массив слов,напечатать слова так,чтобы последняя буква 1 слова была такой же,как и первая буква 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <string>
 
using std::string;
using std::cin;
using std::cout;
using std::getline;
 
int i,j,n,c;
string word_1,word_2;
string *words = new string[100];
string *stack = new string[100];
 
 
void input()
{
    cout << "Enter a count of strings";
    cin >> c;
 
    for(i=0;i<c;i++)
    {
        cout << "Enter a string";
        cin >> words[i];
    }
}
 
int near(string word_1)
{
    n= word_1.length();
    return n;
}
 
void sort()
{
    word_1 = words[0];
    stack[0] = word_1;
 
    for(i=1;i<c;i++)
    {
     word_2 = words[i];
     n=near(word_1);
 
     if(word_1[n] == word_2[1])
     {
         stack[i] = word_2;
         word_1 = word_2;
     }
    }
}
 
void output()
{
 j=0;
 for(i=c;i>=1;i--)
 {
     word_1 = stack[c-1];
     word_2 = stack[j];
     n = near(word_1);
 
     if(word_1[n] == word_2[1])
         for(i=j;i<=c;i++)
             cout << stack[i];
 
     j++;
 }
}
 
 
int main()
{
input();
sort();
output();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 23:37     [C++] Cтроки
Посмотрите здесь:

C++ Cтроки и массив.
cтроки и фаилы C++
cтроки C++
Cтроки C++
C++ Cтроки
Cтроки. 2 программы C++
Cтроки C++
C++ Cтроки

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SleepMaster
 Аватар для SleepMaster
40 / 40 / 1
Регистрация: 26.11.2011
Сообщений: 80
29.11.2011, 23:47     [C++] Cтроки #2
Ну начнём вот с этой функции:
C++
1
2
3
4
5
int near(string word_1)
{
    n= word_1.length();
    return n;
}
Вам не кажется, что она вообще не нужна? Проще её убрать и заменять вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void sort()
{
    word_1 = words[0];
    stack[0] = word_1;
 
    for(i=1;i<c;i++)
    {
     word_2 = words[i];
     n=word_1.length()-1;
 
     if(word_1[n] == word_2[1])
     {
         stack[i] = word_2;
         word_1 = word_2;
     }
    }
}
Почему word.length()-1? Потому что длинна строки считается с 0-вого символа. Если длинна строки = 3, то обращение к элементу #3 невозможно: их всего 0, 1, 2 = 3
NinGAZ
13 / 13 / 1
Регистрация: 27.07.2011
Сообщений: 162
30.11.2011, 19:11  [ТС]     [C++] Cтроки #3
спасибо,я думал об этом,но дальше этого не пошло. первый раз с этим столкнулся. все с опытом приходит)

Добавлено через 2 часа 21 минуту
все заработало,как надо. были еще другие баги,но уже из-за другого
Yandex
Объявления
30.11.2011, 19:11     [C++] Cтроки
Ответ Создать тему
Опции темы

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