![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 17.05.2011
Сообщений: 4
|
![]()
Помогите исправить ошибки, пожалуйста, а то никак не могу сообразить((
Дан текст, состоящий из N (2<=N<=10) строк с максимальной длиной 80 символов. Необходимо вывести в алфавитном порядке последние слова всех предложений. Считать, что текст написан синтаксически грамотно, в качестве знаков препинания используются точка и запятая, слова состоят только из букв, перенос слов по слогам отсутствует. Для выделения слов из строки создать пользовательскую функцию. #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;} } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, | Шпунюся | Помощь студентам | 1 | 16.12.2010 21:02 |
Создание пустой строки и копирование в неё содержимое предыдущей строки | Gvaridos | Microsoft Office Excel | 2 | 29.10.2010 13:33 |
Дбавление новой строки, после строки с подходящими параметрами | RailOS | Microsoft Office Excel | 5 | 18.08.2010 10:12 |
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. | Александе еть я | Общие вопросы C/C++ | 5 | 13.04.2010 20:54 |
Перенести символа с начала строки в место перед запятой этой же строки. | Zhiltsov | Microsoft Office Excel | 4 | 05.06.2009 13:10 |