Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
darggoll
1

В заданном тексте вычислить количество слов в тексте и распечатать их по одному в строку

19.07.2010, 20:54. Показов 3527. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго вечера, заканчиваю практику в университете и осталась последняя задачка, которую надо решить на qbasic, pascal и turboC.

"В заданном тексте вычислить количество слов в тексте и распечатать их по одному в строку"

С первой частью задачи все понятно. А вот со второй косяк Не получается в С вывести слова по строкам. Обе программы написаны на qb и pascal, работают правильно, а вот с С проблема...

Прилагаю исходные коды программ, помогите разобраться с С

pascal:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var
   s,s1: string;
   i,k: integer;
   kol: integer;
begin
     readln(s);
     s:=s+' ';
     repeat
     if pos('  ',s)>0 then
     delete(s,pos('  ',s),1);
     until pos('  ',s)=0;
     k:=0;
     kol:=0;
     for i:=1 to length(s) do
     if s[i]=' ' then
     begin
          s1:=copy(s,k+1,i-k);
          writeln(s1);
          kol:=kol+1;
          k:=i;
     end;
     writeln('koli4estvo slov=',kol);
     readln;
end.
qb:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CLS
REM 's4itam kolvo slov'
INPUT s$
PRINT
n = 0
k = 0
s$ = s$ + " "
s1$ = s$
g = 1
FOR i = 1 TO LEN(s$)
  letter$ = MID$(s$, i, 1)
  IF letter$ = " " THEN
    n = n + 1
    PRINT MID$(s$, g, i - g)
    s1$ = MID$(s$, i + 1, LEN(s$) - i)
    g = i + 1
    IF LEN(s1$) = 0 THEN EXIT FOR
  END IF
NEXT i
 
PRINT "OTBET: slov="; n
END
С, 1 часть:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(void)
{
char string[]=" ";
int s,i,k,g;
printf("vvedi strike: ");
gets(string);
s=strlen(string);
k=1;
for (i=0;i<s;i++)
{ if (string[i]==' ')
  k=k+1;
}
printf("\n");
printf("k=%d",k);
getch();
}
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2010, 20:54
Ответы с готовыми решениями:

Строки. Вычислить количество слов в тексте и распечатать эти слова
Помогите с задачей! Задан текст. Вычислить количество слов в нем и распечатать эти слова (по...

Определить количество слов в заданном тексте
Собственно задание - Дан текст. Определить, сколько в нем слов. В ассемблере новичок. Интересует...

Найти количество слов в заданном тексте
Найти количество слов в данном тексте X$ мама мыла раму Заранее спасибо !

Определить количество слов в заданном тексте
Определить количество слов в заданном тексте, содержащих сочетание символов, задаваемое с экрана....

3
98 / 94 / 16
Регистрация: 16.05.2010
Сообщений: 310
19.07.2010, 21:01 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
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(void)
{
char string[]=" ";
int s,i,k,g;
printf("vvedi strike: ");
gets(string);
s=strlen(string);
k=1;
for (i=0;i<s;i++)
{ 
    printf("%c", string[i]);
    if (string[i]==' ')
    {
        k=k+1;
        printf("\n");
    }
}
printf("\n");
printf("k=%d",k);
getch();
return 0;
}
1
darggoll
19.07.2010, 21:04 3
спасибо! все работает ! чудненько
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
20.07.2010, 01:18 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define DELIM " .,;:!?\t\n"
 
int main(void){
    char buf[BUFSIZ], * p;
    int cnt;
 
    printf("Text: ");
    if ( ! fgets(buf, BUFSIZ, stdin) ){
        fprintf(stderr, "Can't get some string!\n");
        exit(EXIT_FAILURE);
    }
 
    for ( cnt = 0, p = strtok(buf, DELIM); p != NULL; ++cnt, p = strtok(NULL, DELIM) )
        printf("%s\n", p);
    printf("\n*** %d words.\n", cnt);
 
    exit(EXIT_SUCCESS);
}
2
20.07.2010, 01:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2010, 01:18
Помогаю со студенческими работами здесь

Подсчитать количество слов в заданном тексте
Использовать простые операторы такие как ( for, printf, scanf, char, strlen) и библиотеки string.h...

Вычислить количество слов и распечатать их по одному в строке
Всем прив!!! В тексте введеном с клавы вычислить кол-во слов и распечатать их по одному в строке???...

Определить количество различных слов в заданном тексте
в) Определить количество различных слов в заданном тексте.

Найти количество слов-полиндромов в заданном тексте.
Как решить задачу??? Дан текст, в котором слова разделены одним или несколькими пробелами. Найти...

Строки. Определить количество слов в заданном тексте
Определить количество слов в заданном тексте

Подсчитать в заданном тексте количество удвоенных букв. (Напр.в тексте finn is fool )
Подсчитать в заданном тексте количество удвоенных букв. (Напр.в тексте finn is fool )


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru