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

нужно удалить из строки наибольшее и наименьшее слово - C++

Восстановить пароль Регистрация
 
gylayko
30 / 29 / 4
Регистрация: 28.09.2011
Сообщений: 448
08.04.2012, 14:44     нужно удалить из строки наибольшее и наименьшее слово #1
нужно разделить сроку на слова и вывести строку без этих слов. я делаю так: сначала запоминаем каждое слово в эелементе массива и длину этого слова в свой элемент массива
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <conio.h>
#include <string.h>
#incluse <stdlib.h>
void main()
{char st[200]="Babak Kirilo Bodnar Ivan Boxonko Nazar Bik Ivan Gavrilyuk Ivan Gzhegockij Roman Gishka";
 char *slovo;
 slovo=strtok(st," ");
 while (slovo!=NULL)
  {slovo=strtok(NULL," ");
  slovo=a[i]; i++;/*zapominaem slovo v elemente massiva*/
  strlen[slovo]=v[s]; s++;} /*dlina*/
далее пытаюсь найти максимальное слово в цикле
C++
1
2
3
4
5
6
7
i=j;
max=1;
for (s=1;s<j;s++)
 {if (v[s]<v[max])
  {v[s]=v[max];}
 }
}printf("max dlina= %d"[max]);
затем с минимальным
C++
1
2
3
4
5
6
min=1;
for (s=1;s<j;s++)
 {if (v[s]>v[min])
  {v[s]=м[min];}
 }
}printf("min dlina= %d"[min]);
теперь как-то нужно вывести строку без наибольшего и наименьшего слова, думаю, примерно так
C++
1
2
3
4
for (i=1;i<max;i++)
{printf("%d ",a[i]);}
for (i=max;i<j;i++)
{printf("%d ",a[i]);
то есть мы выводим сначала кусок до максимального слова, потом после максимального.
но вот как сделать, чтобы выводло и без максимального и без минимального? и какой тип должен быть у массива а? и все ли я правильно делаю? помогите сделать единый код программы!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stanis-morozov
15 / 15 / 1
Регистрация: 18.03.2012
Сообщений: 91
08.04.2012, 15:22     нужно удалить из строки наибольшее и наименьшее слово #2
Выложите, пожалуйста, ведь код, а то я у вас не вижу ни объявления массивов a[] и v[], ни откуда вы берете переменную j и например, вот эта строка
C++
1
i=j;
делает непонятно что, т.к. операции с j у вас в коде не отображены.

Добавлено через 3 минуты
И вообще странный у вас какой-то код, давайте я вам лучше новый напишу?
gylayko
30 / 29 / 4
Регистрация: 28.09.2011
Сообщений: 448
08.04.2012, 15:34  [ТС]     нужно удалить из строки наибольшее и наименьшее слово #3
переменной j я пытаюсь запомнить индекс последнего элемента массива! если по тому же принципу, напишите!
stanis-morozov
15 / 15 / 1
Регистрация: 18.03.2012
Сообщений: 91
08.04.2012, 15:42     нужно удалить из строки наибольшее и наименьшее слово #4
Да, принцип тот же. И последний вопрос: минимальная строка это какая: минимальная в лексикографическом порядке или минимальная по длине? Судя по вашему коду - минимальная по длине, так?

Добавлено через 5 минут
Если минимальная по длине, то код вот такой будет:
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
#include <stdio.h>
#include <string.h>
 
int main()
{
    char st[] = "Babak Kirilo Bodnar Ivan Boxonko Nazar Bik Ivan Gavrilyuk Ivan Gzhegockij Roman Gishka";
    char *sl;
    char words[100][100];
    int len[100];
    int i = 0;
    sl = strtok(st, " ");
    while (sl)
    {
        strcpy(words[i], sl);
        len[i] = strlen(sl);
        i++;
        sl = strtok(NULL, " ");
    }
    int mn = 0, mx = 0;
    for (int j = 0; j < i; j++)
    {
        if (len[j] < len[mn])
        {
            mn = j;
        }
        if (len[j] > len[mx])
        {
            mx = j;
        }
    }
    for (int j = 0; j < i; j++)
    {
        if (j != mn && j != mx)
        {
            printf("%s ", words[j]);
        }
    }
    return 0;
}
Если все-таки в лексикографическом порядке, то скажите - я там чуть-чуть переделаю.
Yandex
Объявления
08.04.2012, 15:42     нужно удалить из строки наибольшее и наименьшее слово
Ответ Создать тему
Опции темы

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