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

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

Восстановить пароль Регистрация
 
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 19:08     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. #1
Вывести на консоль те строки, длина которых меньше (больше) средней, а
также длину.
Собственно вот проблема..Мне помогали писать данную программу но она что-то все равно не работает. Она просто тупо зависает. Может кто помочь объяснить что в ней не так? Мб я просто неправильно заполняю строки?

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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 19:08     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину.
Посмотрите здесь:

C++ Перепишите из входного файла в выходной только те строки, длина которых меньше 70
C++, напечатать все строки, длина которых меньше заданного числа C++
Найти в файле максимальную длину строки и вывести в новый файл все строки, имеющую такую длину C++
C++ Вывод слов из файла длина которых больше N
C++ Удаление из строки слов, длина которых меньше заданной
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
saden
 Аватар для saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 19:16     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. #2
строки автоматически не обнуляются, strlen может работать некорректно
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 22:24  [ТС]     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. #3
А как можно поправить?
saden
 Аватар для saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 22:26     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. #4
Обнулить в цикле
Или уменьшить кол-во на время дизайна и задать все строки
Flashik66
15 / 7 / 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;
}
saden
 Аватар для saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 22:31     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. #6
ну-у-у,
нумерация массива идет с нуля
str[4] - причина висяка
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 22:35  [ТС]     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. #7
Так это количество строк. Смысл ставить там 0? 4 строки размером 256? Я просто не очень силен..прошу объяснять подробнее если не сложно..
saden
 Аватар для 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");
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 22:37  [ТС]     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. #9
Я так сделал но все равно тоже самое..

Добавлено через 36 секунд
Пишет Debug error
saden
 Аватар для saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 22:37     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. #10
тогда еще раз код полностью
Flashik66
15 / 7 / 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;
}
Вот со всеми последними поправками.
saden
 Аватар для 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);
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
12.03.2014, 22:43  [ТС]     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. #13
Все работает! Спасибо огромное! Можете только объяснить что было не так и почему заработало? Чтобы я смог понять ошибки..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2014, 22:46     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
saden
 Аватар для saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 22:46     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. #14
такой вот он printf
Yandex
Объявления
12.03.2014, 22:46     Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину.
Ответ Создать тему
Опции темы

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