Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 30
1

найти max и min по длине слово

19.03.2010, 22:13. Показов 1056. Ответов 9
Метки нет (Все метки)

такая задача. помогите плиз
_______________________________
дана строка символов. найти в ней max и min по длине слово и заменить их на подстроки "max" и "min" соответственно, при необходимости сдвинув символы

___
заранее спасибо
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2010, 22:13
Ответы с готовыми решениями:

Найти max и min слово в строке
Созданы две строки,а как найти max b min слово? #include <iostream> #include<cstring>...

Найти max и min, если min левее max, то среднее арифметическое между ними
#include <iostream.h> #include <stdio.h> #include <conio.h> #include <math.h> void main() {...

Процедура: Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c))
Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c)) с...

Найти max и min элементы в массиве и номер элемента, близкого к среднему арифметическому min и max.
Привет всем! Очень прошу помочь в решении задачи на определение характеристик одномерного массива....

9
21 / 21 / 7
Регистрация: 06.10.2008
Сообщений: 173
20.03.2010, 13:00 2
а можна использовать библу string.h или все нужно делать через масив чаров вручную?
0
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 30
20.03.2010, 13:19  [ТС] 3
через массив чаров..
0
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 30
22.03.2010, 15:14  [ТС] 4
помогите с задачей кто-нибудь..
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11031 / 6983 / 1651
Регистрация: 25.07.2009
Сообщений: 12,727
22.03.2010, 16:04 5
Цитата Сообщение от lilllu Посмотреть сообщение
через массив чаров
Это нудно... Вот Вам "джедайский" вариант, вдруг пригодится?!
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 <iostream>
#include <string>
#include <sstream>
#include <functional>
#include <set>
 
// дана строка символов. найти в ней max и min по длине слово 
// и заменить их на подстроки "max" и "min" соответственно
    
class LenCmp : public std::binary_function<std::string, std::string, bool> {
public:
    bool operator() (const std::string& a, const std::string& b){
        return a.length() > b.length();
    }
};
 
int main(){
    std::string s;
    std::cout << "String: ";
    std::getline(std::cin, s);
    
    std::istringstream ist(s);
    std::string tmp;
    std::set<std::string, LenCmp> words;
    while ( ist >> tmp )
        words.insert(tmp);
 
    std::cout << "Max word: " << *words.begin() << std::endl;
    std::cout << "Min word: " << *words.rbegin() << std::endl;
    
    size_t max_pos = s.find(*words.begin());
    s.replace(max_pos, words.begin()->length(), "max");
    size_t min_pos = s.find(*words.rbegin());
    s.replace(min_pos, words.rbegin()->length(), "min");
    
    std::cout << "Result: " << s << std::endl;
    
    return 0;
}
1
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 30
22.03.2010, 21:11  [ТС] 6
спасибо огромное))

__________
ток вот как все это преподу сдавать..))мы такого либо не проходили либо это я тупое создание))...
0
easybudda
22.03.2010, 21:47
  #7

Не по теме:

lilllu, скажите - приснилось, как Менделееву таблица... :)

0
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 30
22.03.2010, 21:52  [ТС] 8
что-то подобное уже говорила в прошлом семестре) препод улыбнулся и экз я сдавала все каникулы)))
0
119 / 68 / 17
Регистрация: 17.11.2009
Сообщений: 261
23.03.2010, 19:18 9
Ну вот собственно сама программа.

+
Программа написана языком новичков(это я! )
Работает, вычисляет размер минимального и макимального слова, заменяет максимальное слово на max и минимальное на min. Может работать и с русским языком, только не в windows, кодировка не подключена.

-

Программа сырая, разработана методом проб и ошибок и метод тыка(без этого ни как убил на нее минут 50).
Заменяет только первые max и min слова, а остальные равные этим размерам нет.


У кого есть желание довести до ума - прошу... Я не жадный

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
#include <iostream>
 
using namespace std;
 
int main()
{   
    int max(0), min(1000);
    int dmax=0;
    int dmin=0;
    int count=0;//счетчик
    const int arraySize=89;//размер строки в символах(елси изменять строку то и изменять значение arraySize
    //строка
    char stroka[arraySize]="Sign up for Facebook to connect with When We Were Little We Wanted To Grow Up.\n";
    //вывод на экран строки
    for(int i=0;i<arraySize;i++)
        cout << stroka[i]; 
    //поиск
    for(int i=0;i<arraySize;i++)//пробегаем по всей строке
    {
        // если строка текста достигает разделителей слов включаем счетчик
        if((stroka[i]!='\n')&&(stroka[i]!=' ')&&(stroka[i]!=',')&&(stroka[i]!=':')&&(stroka[i]!='.')&&(stroka[i]!='!')&&(stroka[i]!='?'))
        {
            count++;
        }
        //если нет, то проверка
        else
        {
                if(count==0)
                    continue;
                if(count>max)
                {
                    max=count;
                    dmax=i-count;
                }
                if(count<min)
                {
                    min=count;
                    dmin=i-count;
                }
                
                count=0;//сброс счетчика обязательно
        }
    }
    cout << endl;
    //вывод на экран строки и min и max
 
    for(int i=0;i<arraySize;i++)
    {
        if((i!=dmin)&&(i!=dmax))
        {
            cout << stroka[i];
        }
        else
        {
            if(i==dmin)
            {
                i=i+min;
                cout << " min ";
            }
            else
            {
                if(i==dmax)
                {
                    i=i+max;
                    cout << " max ";
                }
            }
        }
    }
    cout << endl;
    cout << "Max slovo = " << max << endl;
    cout << "Min slovo = " << min << endl;
}
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11031 / 6983 / 1651
Регистрация: 25.07.2009
Сообщений: 12,727
13.07.2010, 23:40 10
пока отвечал, пост удалили ну на всякий случай для гражданина, которому то же самое но на С понадобилось:
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
87
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char ** min_word(char ** words, size_t size){
    char ** minWord;
    int curLen, minLen;
 
    minWord = words;
    minLen = strlen(*minWord);
    while ( --size ){
        if ( ( curLen = strlen(*(++words)) ) < minLen ){
            minWord = words;
            minLen = curLen;
        }
    }
    return minWord;
}
 
char ** max_word(char ** words, size_t size){
    char ** maxWord;
    int curLen, maxLen;
 
    maxWord = words;
    maxLen = strlen(*maxWord);
    while ( --size ){
        if ( ( curLen = strlen(*(++words)) ) > maxLen ){
            maxWord = words;
            maxLen = curLen;
        }
    }
    return maxWord;
}
 
#define DELIM " \t\n"
 
int main(void){
    char buf[BUFSIZ], ** words, * pWord, ** foundWord;
    size_t size, i;
 
    words = NULL;
    size = 0;
 
    printf("String: ");
    if ( ! fgets(buf, BUFSIZ, stdin) ){
        fprintf(stderr, "Can't get some string!\n");
        exit(EXIT_FAILURE);
    }
 
    for ( pWord = strtok(buf, DELIM); pWord; pWord = strtok(NULL, DELIM) ){
        if ( ( words = (char**)realloc(words, sizeof(char*) * (size + 1)) ) == NULL ){
            fprintf(stderr, "Memory error!\n");
            exit(EXIT_FAILURE);
        }
        if ( ( words[size++] = strdup(pWord) ) == NULL ){
            fprintf(stderr, "Memory error!\n");
            exit(EXIT_FAILURE);
        }
    }
 
    if ( ! words ){
        fprintf(stderr, "No words in array!\n");
        exit(EXIT_FAILURE);
    }
 
    foundWord = min_word(words, size);
    free(*foundWord);
    *foundWord = strdup("min");
 
    foundWord = max_word(words, size);
    free(*foundWord);
    *foundWord = strdup("max");
 
    *buf = 0;
    for ( i = 0; i < size; ++i ){
        strcat(buf, words[i]);
        strcat(buf, " ");
    }
 
    printf("Result: %s\n", buf);
 
    for ( i = 0; i < size; ++i )
        free(words[i]);
    free(words);
 
    exit(EXIT_SUCCESS);
}
PS в задании про язык программирования ни слова не было...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2010, 23:40

Введенные с клавиатуры слова выстроить по длине от max к min
введенные с клавиатуры слова,выстроить по длине от max к min Добавлено через 23 секунды plz...

18. Даны различные действительные числа x, y, z, d. Найти max (min (x, y), min (x, z), min (z, d)
Даны различные действительные числа x, y, z, d. Найти max (min (x, y), min (x, z), min (z, d)).

Дана строка, заменить слово min на слово max
#include &lt;stdio.h&gt; int main() { int n = 81; char str; int i; gets(str);

Найти max и min элементы массива y и сформировать массив z из элементов массива y, находящихся между max и min y. Записать массив z в обратном порядке
Дан массив Х{80 элементов}. Вычислить {y}_{i}=sin\sqrt{{x}_{i}}+{cos}^{2}{{x}_{1}}^{2} Найти...

Описать функцию F (a, min, max ) определяющую значение максимального max и минимального min элементов этого массива
Помогите с задачкой! плиз! Для вещественного массива а, описать функцию F (a, min, max )...

По заданным значениям x, y, z вычислить значения u: u=min (x, max(y, z). Для расчета написать функции max(x, y) и min(x
По заданным значениям x, y, z вычислить значения u: u=min (x, max(y, z)). Для расчета написать...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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