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

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

Войти
Регистрация
Восстановить пароль
 
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
#1

Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. - C++

12.03.2014, 19:08. Просмотров 503. Ответов 13
Метки нет (Все метки)

Вывести на консоль те строки, длина которых меньше (больше) средней, а
также длину.
Собственно вот проблема..Мне помогали писать данную программу но она что-то все равно не работает. Она просто тупо зависает. Может кто помочь объяснить что в ней не так? Мб я просто неправильно заполняю строки?

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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
    char str[100][256];// 100 строк длиной <256
    int avg,len,i;
// заполнил 2 строки
    strcpy(str[1], "user1");
    strcpy(str[13], "userr1");
    
    avg=0;
    for(i=0;i<100;i++)
    {
           len=strlen(str[i]);
           avg+=len;
    }
    avg/=100;
    for(i=0;i<100;i++)
    {
           len=strlen(str[i]);
           if(len<avg)
               printf("%s %len\n",str[i],len);
    }
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 19:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. (C++):

Определить среднюю длину строк в тексте и вывести строки с длиной меньше средней - C++
определить среднюю длину строк и вывестис длиной меньше средней я даже приблизительно немогу понять как это делать, вначале нужно...

Вывести все слова из строки длина которых меньше заданной - C++
Составить программу посимвольной обработки,без всяких функций из strin.h(!!!), с помощью puts и gets для такой задачи: Вывести все слова...

Удаление из строки слов, длина которых меньше заданной - C++
Удалить из строки слова,длина которых меньше заданной,решите пожалуйста,за ранее спасибо)))

Определить длину введенной строки, и, если длина больше заданной, то удалить символы от a до z - C++
Здравствуйте можете пожалуйста помочь с задачей на строки. Очень прошу. Определить длину введенной строки, и, если длина больше 15, то...

Из заданной строки удалить слова, длина которых меньше указанной. - C++
Помогите написать программу которая из заданной символьной строки удаляет слова длина которых меньше указанной пользователем.

Напечатать все строки, длина которых меньше заданного числа - C++
Прошу помочь с небольшой задачкой: Работа с текстовыми файлами. Дан текстовый файл. Напечатать все строки, длина которых меньше...

13
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 19:16 #2
строки автоматически не обнуляются, strlen может работать некорректно
0
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 22:24  [ТС] #3
А как можно поправить?
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 22:26 #4
Обнулить в цикле
Или уменьшить кол-во на время дизайна и задать все строки
0
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 22:30  [ТС] #5
я попробовал поставить 4 и заполнил 4 строки. Но все равно. Программа при запуске зависает...

Вот что сделал:

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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
    char str[4][256];// 100 ñòðîê äëèГ*îé <256
    int avg,len,i;
// Г§Г*ïîëГ*ГЁГ« 2 ñòðîêè
    strcpy(str[1], "user1");
    strcpy(str[2], "userr1");
    strcpy(str[3], "userrr1");
    strcpy(str[4], "userrrr1");
    
    avg=0;
    for(i=0;i<4;i++)
    {
           len=strlen(str[i]);
           avg+=len;
    }
    avg/=4;
    for(i=0;i<4;i++)
    {
           len=strlen(str[i]);
           if(len<avg)
               printf("%s %len\n",str[i],len);
    }
    getch();
    return 0;
}
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 22:31 #6
ну-у-у,
нумерация массива идет с нуля
str[4] - причина висяка
0
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 22:35  [ТС] #7
Так это количество строк. Смысл ставить там 0? 4 строки размером 256? Я просто не очень силен..прошу объяснять подробнее если не сложно..
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 22:36 #8
C++
1
2
3
4
strcpy(str[0], "user1");
strcpy(str[1], "userr1");
strcpy(str[2], "userrr1");
strcpy(str[3], "userrrr1");
0
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 22:37  [ТС] #9
Я так сделал но все равно тоже самое..

Добавлено через 36 секунд
Пишет Debug error
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 22:37 #10
тогда еще раз код полностью
0
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 22:39  [ТС] #11
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
    char str[4][256];// 100 ñòðîê äëèГ*îé <256
    int avg,len,i;
// Г§Г*ïîëГ*ГЁГ« 2 ñòðîêè
    strcpy(str[0], "user1");
    strcpy(str[1], "userr1");
    strcpy(str[2], "userrr1");
    strcpy(str[3], "userrrr1");
    
    avg=0;
    for(i=0;i<4;i++)
    {
           len=strlen(str[i]);
           avg+=len;
    }
    avg/=4;
    for(i=0;i<4;i++)
    {
           len=strlen(str[i]);
           if(len<avg)
               printf("%s %len\n",str[i],len);
    }
    getch();
    return 0;
}
Вот со всеми последними поправками.
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 22:42 #12
printf("%s %len\n",str[i],len);
->
printf("%s %d\n",str[i],len);
1
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 22:43  [ТС] #13
Все работает! Спасибо огромное! Можете только объяснить что было не так и почему заработало? Чтобы я смог понять ошибки..
0
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 22:46 #14
такой вот он printf
0
12.03.2014, 22:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2014, 22:46
Привет! Вот еще темы с ответами:

Перепишите из входного файла в выходной только те строки, длина которых меньше 70 - C++
Помогите пожалуйста с решением задачки. Перепишите из входного файла в выходной только те строки, длина которых меньше 70. Строки...

Удалить из строки все слова, длина которых меньше пяти символов - C++
Доброго времени суток, условие в заголовке. Возможно ли добавить символ к строке? #include &lt;iostream&gt; #include &lt;string&gt; #include...

Ввести строку. Выдать все слова, которые имеют длину больше, чем длина последнего слова строки - C++
ввести строку. на печать, выдать все слова, которые имеют длину больше, чем длина последнего слова строки.

Вывести на экран строки длиной больше 5 и меньше 20 символов из контейнера multiset<string> - C++
Здравствуйте, у меня такой вопрос, например существует контейнер multiset&lt;string&gt;, как можно вывести на экран строки длиной больше 5 и...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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