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

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

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

помогите подправить программу - C++

09.04.2012, 21:01. Просмотров 360. Ответов 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
#include <windows.h>
#include <stdio.h>
int quantity(char array[ ], int k)
{
    int amount=1;
    for (int i=0;i<k;i++) if(array[i]=='_') amount++;
    return amount;
}
void word(char array[ ], int k)
{
    int j=0;
    int sm=0;
    int temp=0;
    int buf[80];
    int index_begin[80];
    int index_end[80];
    char word[80];
    for (int i=0;i<k;i++) {buf[i]=0; index_begin[i]=0; index_end[i]=0;}
    for (i=0;i<k;i++) 
    {
        if(array[i]=='_') {temp++; index_begin[temp]=i+1;} 
        else {buf[temp]++; index_end[temp]=i;}
    }
    sm=buf[0];
    for (i=0;i<temp;i++) if(buf[i]<sm) sm=i;
    for (i=index_begin[sm];i<=index_end[sm];i++) {word[j]=array[i]; printf("%c",word[j]); j++;}
}
void main()
{
    int i,k,amount;
    char text[80],sym;
    k=0;
    for (i=0;i<80;i++) text[i]='.';
    printf ("Enter text:\nThe prevention 1: text will be read to'.'\nThe prevention 2: instead of blanks use '_'\n");
    scanf ("%s",&text);
    while (sym!='.') {sym=text[k]; k++;}
    amount=quantity(text,k);
    printf("Quantity of words: %d.\n",amount);
    printf("The shortest word: '");
    word(text,k);
    printf("'.\n");
}
Помогите подправить пожалуйста.

Добавлено через 1 час 22 минуты
все еще нужна помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2012, 21:01     помогите подправить программу
Посмотрите здесь:

Помогите подправить код - C++
Задача. Вводится n-значный массив состоящий из целых элементов. Надо найти произведение четных элементов. Но у меня почему то не работает....

помогите пожалуйста подправить код - C++
C++.Нужно удалить элемент из массива.Выдает ошибку - : error C2105: '--' needs l-value .Подскажить что не так,а то я еще в этом...

c++ пожалуйста помогите подправить код - C++
Нужно переставить местами два указаных столбца(q,w).Написал этод код,а он переставляет только 1-3 и 2-3 столбцы и это при размере массива 3...

Подправить программу - C++
Помогите, пожалуйста, подправить программу. Задание следующее: Даны действительные числа a, b, c, d. Проверить возможность...

Подправить программу - C++
помогите, пожалуйста. программа работает только когда вводятся числа по условию от 3 до 9. когда вводишь больше 9, то программа...

Необходимо подправить программу - C++
я написал программу: #include &lt;iostream&gt; #include &quot;liquid.h&quot; #include &quot;SpNapitki.h&quot; using namespace std; void...

Нужно подправить программу - C++
Нужно чтобы программа выводила сообщение &quot;такого элемента нет&quot; если указанной цифры нет в массиве. (массив упорядоченный). Заранее...

Подправить программу на миссивы, си++ - C++
Вопрос в тексте кода. Помогите, пожалуйста. #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;iostream.h&gt; void main () { int i,...

(С++)Нужно немного подправить программу - C++
Задача такова: Дан файл, содержащий сведения о телефонах абонентов. Структура записи файла: фамилия и инициалы абонента, год установки...

Распределение памяти (подправить программу) - C++
исправить: вывести на экран не номер строки с максимальным количеством положительных элементов, а саму строку. #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
001_alex
9 / 13 / 1
Регистрация: 07.04.2012
Сообщений: 56
09.04.2012, 23:31     помогите подправить программу #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
#include <vcl.h>
#include <conio.h>
#include <stdio.h>
#include <ctype.h>
 
void main()
{
  char *a = new char [82];
  int i = 0 ,j = 0 ,k = 1;
  puts("Vvedite stroku:");
  gets(a);
  int n = strlen(a);
 
  while(i < n)
     if( (ispunct(a[i])) || (a[i]==' ') )/*Åñëè a[i] Г°Г*ГўГҐГ* Г§Г*Г*ГЄГі ГЇГіГ*ГЄГІГіГ*öèè*/
     {
        /*Ïðîâåðÿåì ñëåäóþùèå a[i]-ГҐ Г*Г* Г§Г*Г*ГЄГЁ ГЇГіГ*ГЄГІГіГ*öèè*/
        while((ispunct(a[i])) || (a[i]==' '))
        {
           j=j+1;
           i=i+1;
        }
        /*Ñ÷èòГ*ГҐГ¬ ñëîâГ**/
        k=k+1;
     }
     else
     {
        j=j+1;
        i=i+1;
     }
  printf("\n Kol slov -> %d",k);
  getch();
}
Если никто сегодня не подскажет насчёт второй задачки, напишу завтра вечером!
Superball1
1 / 1 / 0
Регистрация: 25.04.2009
Сообщений: 15
09.04.2012, 23:41  [ТС]     помогите подправить программу #3
Спасибо, я уже разобрался. Просто нужно было инициализировать sym=0, и все работает
Ответ Создать тему
Опции темы

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