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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
akimo
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 10
#1

Задача: "Слишком длинные слова" (RUNTIME_ERROR) - C++

03.10.2012, 17:13. Просмотров 1139. Ответов 3
Метки нет (Все метки)

"RUNTIME_ERROR" при отправлении. В чем ошибка и как сделать правильно?

Текст задачи:
A. Слишком длинные слова
ограничение по времени на тест:2 seconds
ограничение по памяти на тест:256 megabytes
ввод:standard input
вывод:standard output

Иногда некоторые слова вроде «localization» или «internationalization» настолько длинны, что их весьма утомительно писать много раз в каком либо тексте.

Будем считать слово слишком длинным, если его длина строго больше 10 символов. Все слишком длинные слова можно заменить специальной аббревиатурой.

Эта аббревиатура строится следующим образом: записывается первая и последняя буква слова, а между ними — количество букв между первой и последней буквой (в десятичной системе счисления и без ведущих нулей).

Таком образом, «localization» запишется как «l10n», а «internationalization» как «i18n».

Вам предлагается автоматизировать процесс замены слов на аббревиатуры. При этом все слишком длинные слова должны быть заменены аббревиатурой, а слова, не являющиеся слишком длинными, должны остаться без изменений.
Входные данные

В первой строке содержится целое число n (1 ≤ n ≤ 100). В каждой из последующих n строк содержится по одному слову. Все слова состоят из малых латинских букв и имеют длину от 1 до 100 символов.
Выходные данные

Выведите n строк. В i строке должен находится результат замены i-го слова из входных данных.

Примеры тестов

Входные данные
4
word
localization
internationalization
pneumonoultramicroscopicsilicovolcanoconiosis

Выходные данные
word
l10n
i18n
p43s

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
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
string str, m1[n], m3[n], c[2];
int m2[n], m4[n];
for (int i = 0; i < n; ++i)
{
    m4[i] = 0;
}
for (int i = 0; i < n; ++i)
{
    cin >> str;
    int k = str.length();
    if (k > 10) {
        c[1] = str[0];
        c[2] = str[k - 1];
        m1[i] = c[1];
        m2[i] = k - 2;
        m3[i] = c[2];
    }
    else {
        m4[i] = 1;
        m1[i] = str;
    }
}
for (int i = 0; i < n; ++i)
{
    if (m4[i] != 1)
    {
        cout << m1[i] << m2[i] << m3[i] << endl;
    }
    else
    {
        cout << m1[i] << endl;
    }
}
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2012, 17:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача: "Слишком длинные слова" (RUNTIME_ERROR) (C++):

Даны три слова - "мама", "мыла", "раму". Задача - напечатать всевозможные варианты построения слов - C++
Я записал код, однако эту часть надо автоматизировать, поможете? КОД: } #include &lt;iostream&gt; using namespace std; int main()...

Из слова "яблоко" путем склеек и вырезок его букв получить слова "блок" и "око" - C++
Самым самым самым простым способом.

Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"."девять", начиная каждое предложение с новой строки - C++
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова &quot;ноль&quot;, &quot;один&quot;...&quot;девять&quot;,...

Определить длину каждого слова строки, и если она четная, то вставить в середину слова "aa", иначе "а" - C++
Помогите с программой, начал делать, ерунда какая то выходит.... #include&lt;iostream.h&gt; #include&lt;stdlib.h&gt; #include&lt;conio.h&gt; ...

Из слова вертикаль путем "вырезок" и "склеек" его букв получить слова тир и ветка - C++
Из слова вертикаль путем &quot;вырезок&quot; и &quot;склеек&quot; его букв получить слова тир и ветка.

Необработанное исключение в "0x76f015de" в "контрольная 1 задача 2.exe": 0xC0000005: Нарушение прав доступа при чтении "0x334e2c64" - C++
доброго времени суток. Необработанное исключение в &quot;0x76f015de&quot; в &quot;контрольная 1 задача 2.exe&quot;: 0xC0000005: Нарушение прав доступа при...

3
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
03.10.2012, 17:18 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    short n;
    cin >> n;
    string s;
    short l;
    while (n--) {
        cin >> s;
        l = s.length();
        if (l <= 10)
            cout << s << endl;
        else
            cout << s[0] << l - 2 << s[l - 1] << endl;
    }
}
1
akimo
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 10
03.10.2012, 18:16  [ТС] #3
Благодарю, а я глупость сотворил, что то не подумал, что input и output хранятся в памяти параллельно, начал с приблизительно того же, но потом решил что нужно сначала вбивать строки в массив, а после их выводить в сокращенном виде.
0
Aliksan
5 / 5 / 2
Регистрация: 22.09.2015
Сообщений: 137
10.02.2016, 19:19 #4
Жаль, нет решения задачи на си......
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2016, 19:19
Привет! Вот еще темы с ответами:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Все слова, не содержащие "bc" и заканчивающиеся на "ad" заменить на "!" - C++
В чем ошибка? //Все слова, не содержащие &quot;bc&quot; и заканчивающиеся на &quot;ad&quot; заменить на &quot;!&quot; #include &lt;iostream&gt; #include &lt;string&gt; ...

Класс "Длинные числа" с перегрузкой операторов - C++
только-только начал изучение классов, задание написать класс длинных чисел с перегрузкой операторов если честно, еще очень смутно...

Из слова апельсин путем "вырезок" и "склеек" его букв получить слово спаниель - C++
Задача из сборника Златопольского: 9.30. Из слово апельсин путем &quot;вырезок&quot; и &quot;склеек&quot; его букв получить слово...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
10.02.2016, 19:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru