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

Вывести в алфавитном порядке последние слова всех предложений - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти минимальный элемент массива, поставить его на первое место, остальные элементы сдвинуть http://www.cyberforum.ru/cpp-beginners/thread297470.html
а)Дана последовательность n элементов в виде массива. Найти минимальный элемент массива,паставить его на первое место,остальные эл.сдвигаются. б)Дана матрица А размерности m*n и вектор Х размерности...
C++ строка с нечетной длиной слов Дана строка. Сформировать новую строку, скопировав в нее слова исходной строки, которые имеют нечетную длину, разделить слова пробелом. На Си. Очень прошу вашей помощи со строками дуб дубом http://www.cyberforum.ru/cpp-beginners/thread297437.html
Структура последовательности типа C++
в чем смысл этой структуры...Я ничего не могу найти в интернете по этой теме...
C++ В массиве B[10] найти максимальный элемент, его порядковый номер и произведение его элементов.
Ниже программа на определение максимального элемента(нужно только в printf чет записать)). В заголовке написано что еще нужно, желательно по этому тексту программы делать. # include <stdio.h> #...
C++ Бинарные деревья(( http://www.cyberforum.ru/cpp-beginners/thread297414.html
вот такое задание ... Вершина дерева содержит указатель на строку и динамический массив указателей на потомков. Размерность динамического массива в корневой вершине - N, на каждом следующем уровне...
C++ Реверсы У кого-то есть код програмы игры реверсы, в консольном виде, очень надо. подробнее

Показать сообщение отдельно
Erisu
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 14

Вывести в алфавитном порядке последние слова всех предложений - C++

17.05.2011, 06:59. Просмотров 978. Ответов 6
Метки (Все метки)

Помогите, пожалуйста, исправить код, а то дуб дубом((Не могу никак дойти(
Дан текст, состоящий из N (2<=N<=10) строк с максимальной длиной 80 символов. Необходимо вывести в алфавитном порядке последние слова всех предложений. Считать, что текст написан синтаксически грамотно, в качестве знаков препинания используются точка и запятая, слова состоят только из букв, перенос слов по слогам отсутствует. Для выделения слов из строки создать пользовательскую функцию.

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <vcl.h>
#pragma hdrstop
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
//---------------------------------------------------------------------------
 
#pragma argsused
 char slova(char str[], char **qq, int r)
{char *p;
int g=r;
p=strtok(str," !?,.");
while (p!=NULL)
{
 strcpy(qq[r],p);
r++;
p=strtok(NULL," !?,.");}
return r;}
 
int main(int argc, char* argv[])
{  int n,i,q=0,c=0,g=0,j=0; char *t,ff[80];
char str[10][80]={"I like to wearo high-heeledo shoesee, trousers oor jeans.",
                   "Aaaarrr ttttttr oot iyt tiropeweo!",
                   "Russia is very reach in oil, iron ore, natural gas, copper, nickel.",
                   "It is a wonderful sight you see our country from the plane.",
                   "Throughout its history the Zoo has had many well-known residents.",
                   "The lakes in Scotland are called locks.",
                   "Thames is busiest and most important river in Great Britain.",
                   "Although this vast collection was part of the Zoo's appeal.",
                   "These include species such as rudd, European eels, pink sea fans.",
                   "There is much rain and fog in autumn and in winter!"};
while((n<2)||(n>10))
{printf("Vvedite chislo strok ot 2 do 10:");
scanf("%d",&n);
printf("\n");}
 
printf("Dannie stroki:\n");
for (i = 0; i <n; i++)
{printf("%s\n",str[i]);
strcpy(ff,str[i]);
t=strtok(ff," !?,.");
while (t!=NULL)
{q++; t=strtok(NULL," ,.!?-");}
}
 
char **qq;
qq=(char**)calloc(q,sizeof(char*));
for (i = 0; i <n; i++)
{qq[i]=(char*)calloc(80,sizeof(char));}
 
int r=0;
for (i = 0; i <n; i++)
{
r=slova(str[i],qq,r);}
 
 char *p;
 p=(char*)calloc(n+1,sizeof(char));
 
 for (i = 0; i <r; i++)
  { c=strlen(str[i]);
  if (i==(c-1))
 { strcpy(qq[j],str[i]);
 }
  for (int g=0; g<(r-1); g++)
for (int j=g+1; j<r; j++)
 if (strcmpi(qq[g], qq[j])>0)
{
  strcpy(p,qq[g]);
  strcpy( qq[g], qq[j]);
  strcpy (qq[j], p);
}
 
printf("\n");
for (int g=0; g<r; g++)
printf("%s\n", qq[g]);
 
for (int i = 0; i<1000; i++)
free (qq[i]);
free (qq);
 
free (p);
 
 getchar();getchar();
    return 0;}
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru