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

Вывод слова, содержащего мин и макс количество символов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ на ваше рассмотрение http://www.cyberforum.ru/cpp-beginners/thread78074.html
СПАСИТЕ НАРОД, осталось очень мало времени ,а я нифига не понимаю 1.Найти сумму элементов геометрической прогрессии с указанными номерами.Для прогрессиии задаеться первый элемент и ее знаменатель.Нахождение элемента прогрессии с указанным номером реализовать в виде функции, которая должна возвращать знасение о том, может ли быть найден такой элемент. 2.Вычислить все числа Фибоначчи до...
C++ Система счислений составить программу для перевода чисел из одной системы счисления в другую http://www.cyberforum.ru/cpp-beginners/thread78052.html
Ребята, у меня не работает программа. Посмотрите C++
Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой из строк, содержащей хотя бы один положительный элемент #include <iostream.h> #include <windows.h> int **mas, n, m, i,j, y, temp; int main () { SetConsoleCP(1251); SetConsoleOutputCP(1251); cout<<"Введите количество строк массива: "<< endl;
C++ комплексное число
Определить класс описывающий комплексное число. Для класса перегрузить бинарный оператор * .Написать программу, в которой используется перегруженный оператор. Заранее спасибо)))
C++ Обработка элементов последовательности.надо дописать... http://www.cyberforum.ru/cpp-beginners/thread78010.html
#include <stdio.h> #include <conio.h> #include <iostream.h> long int OdinakCif(int N) { long int N_c=N; int count=0;int count_max=0; for(int i=0;i<10;i++) { while(N_c!=0) {if(N_c%10==i)
C++ Обработка текстовых и бинарных файлов. Текстовые №1. Создать два текстовых файла, слова, содержащиеся в обоих файлах одновременно, удалить из обоих файлов. Дополлнительных массивов и файлов не использовать. Бинарные №2.Выполнить упорядочивание информации в исходном бинарном файле (создать и ввести). Метод сортировки - любой. Дополлнительных массивов и файлов не использовать. Проги нужно реализовать на С, всем заранее благодарен... подробнее

Показать сообщение отдельно
easybudda
Эксперт С++
9455 / 5468 / 927
Регистрация: 25.07.2009
Сообщений: 10,494
22.12.2009, 16:07     Вывод слова, содержащего мин и макс количество символов
Цитата Сообщение от FireFist Посмотреть сообщение
Выполняется через c=getchar().
Не, с getchar() сложно...
Цитата Сообщение от FireFist Посмотреть сообщение
Еще хотелось бы чтоб с комментариями
А вот это - пожалуйста!
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
    
/* сравнивалка строк по длинне для qsort */
int wrdCmpAsc(const void *a, const void *b){
    return strlen(*(char**)a) - strlen(*(char**)b);
}
 
/* 
    вывести слово, содержащее максимальное и минимальное количество символов, 
    строку пользователь вводит с клавиатуры.
*/
 
int main(void){
    char **words, *pWord, buf[BUFSIZ];
    size_t size;
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    while ( 1 ){ /* бесконечный цикл */
        printf("Строка: ");
        if ( !fgets(buf, BUFSIZ, stdin) ){ /* прочитать строку */
            fprintf(stderr, "Can't get string!\n");
            exit(1);
        }
        if ( pWord = strrchr(buf, '\n') )
            *pWord = '\0'; /* удалить символ перевода строки */
        
        if ( !*buf )
            break; /* если строка пустая - на выход */
        
        /* разделение строки на массив слов */
        words = NULL;
        size = 0;
        for ( pWord = strtok(buf, " \t"); pWord != NULL; pWord = strtok(NULL, " \t") ){
            if ( ( words = (char**)realloc(words, sizeof(char*) * (size + 1)) ) == NULL ){
                fprintf(stderr, "Memory error!\n");
                exit(1);
            }
            if ( ( words[size] = strdup(pWord) ) == NULL ){
                fprintf(stderr, "Memory error!\n");
                exit(1);
            }
            ++size;
        }
        if ( !words ){
            fprintf(stderr, "Can't find some words!\n");
            exit(1);
        }
        
        /* сортировка массива слов */
        qsort(words, size, sizeof(char*), wrdCmpAsc);
        /* конец сортировки */
        
        /* вывод самого короткого и самого длинного слов */
        printf("Самое короткое: %s\n", *words);
        printf("Самое длинное: %s\n", *(words + size - 1));
        
        /* очистка памяти */
        do {
            free(words[--size]);
        } while ( size );
        free(words);
    }
    
    /* завершение программы */
    exit(0);
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru