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

Вычисление наименьшего введенного слова (написать комментарий к каждой строке) - C++

Восстановить пароль Регистрация
 
workout
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 54
27.12.2012, 20:10     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #1
Помогите пожалуйста написать комментарий к каждой строке программы и обьяснить принцип ее работы.

Условие: написать прогу для вычисления наименьшего введенного слова.

Решение:

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
#include <conio.h>
#include <stdio.h>
#include <string.h>
 
#define DELIM " \t\n"
 
int main(void){
    char buf[BUFSIZ], * pword, * pmin;
    int minlen, curlen;
 
    printf("String: ");
    if ( ! fgets(buf, BUFSIZ, stdin) )
        return 1;
    
    if ( ( pmin = strtok(buf, DELIM) ) == NULL )
        return 1;
    minlen = strlen(pmin);
 
    while ( pword = strtok(NULL, DELIM) ){
        if ( ( curlen = strlen(pword) ) < minlen ){
            pmin = pword;
            minlen = curlen;        
        }
    }
 
    printf("Shortest word: %s\n", pmin);
    getch();
    
    return 0;
}
Заранее благодарен!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2012, 20:10     Вычисление наименьшего введенного слова (написать комментарий к каждой строке)
Посмотрите здесь:

Ввести строку и слово. Вывести количество слов в строке, имеющих длину, равную длине введенного слова. C++
Ввести строку и слово. Вывести количество слов в строке, имеющих длину, равную длине введенного слова. C++
Вывести все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву и количество таких слов в каждой строке. C++
Написать функцию, меняющую первую букву каждого слова в строке на номер слова C++
Написать программу удаления букв «б» из введенного слова C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
27.12.2012, 20:19     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #2
Программ написана на С, для информации.

C++
1
#include <conio.h>
Я бы не использовал теряется переносимость программы.

C++
1
#define DELIM " \t\n"
Использовать #define плохой тон. Смотреть здесь если интересно: Чем же макрос define так плох?

Я бы переписал прогу. Могу помочь.
workout
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 54
27.12.2012, 20:24  [ТС]     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #3
Цитата Сообщение от KeyGen Посмотреть сообщение
Программ написана на С, для информации.

C++
1
#include <conio.h>
Я бы не использовал теряется переносимость программы.

C++
1
#define DELIM " \t\n"
Использовать #define плохой тон. Смотреть здесь если интересно: Чем же макрос define так плох?

Я бы переписал прогу. Могу помочь.
Переписывать не нужно,уже сделанная лаба,нужно защитить,сказали написать комментарий к каждой строке и обяснить принцип работы.Напиши комментарий к каждой строке если можеш.Спасибо!
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
27.12.2012, 20:43     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #4
В С не силен. Прога с ошибками. (например BUFSIZ не объявлена, это так на первый взгляд. В main(void) void не пишут он подразумевается.) Нафига такая лаба? Могу посоветовать здесь глянуть функции которые не понимаешь: http://www.cplusplus.com/
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
27.12.2012, 20:46     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #5
Цитата Сообщение от KeyGen Посмотреть сообщение
Использовать #define плохой тон.
кто сказал?
Цитата Сообщение от KeyGen Посмотреть сообщение
main(void)
Это стиль Си.
workout
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 54
27.12.2012, 20:49  [ТС]     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #6
Цитата Сообщение от KeyGen Посмотреть сообщение
Нафига такая лаба?
Учусь в вузе,очень нужно завтра сдать!)

Добавлено через 3 минуты
David Sylva,можеш помочь?
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
27.12.2012, 20:53     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #7
Цитата Сообщение от workout Посмотреть сообщение
David Sylva,можеш помочь?
ТЫ можешь сам себе помочь. Гуглишь каждое незнакомое слово, вот и всё.
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
27.12.2012, 20:53     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #8
David Sylva, а что ты скажешь про BUFSIZ
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
27.12.2012, 20:57     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #9
Что тут скажешь вот тут всё написано http://www.cplusplus.com/reference/cstdio/BUFSIZ/
Я просто не понял, суть твоей фразы про define. Видно но же, что программа написана на СИ, в Си define неотъемлемая часть, в С++ не принято применять.Поэтому твоё замечание на мой вкус, не по делу.
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
27.12.2012, 21:06     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #10
Цитата Сообщение от David Sylva Посмотреть сообщение
Что тут скажешь вот тут всё написано http://www.cplusplus.com/reference/cstdio/BUFSIZ/
Не знал спасибо.
workout
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 54
27.12.2012, 21:09  [ТС]     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #11
Вообщем никто не поможет?
Сам не могу............
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
27.12.2012, 21:32     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
KeyGen, BUFSIZ - это макро константа, хранится в <stdio.h>

C++
1
2
/* Buffered I/O macros */
#define BUFSIZ  512
Добавлено через 30 секунд
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
int main(void)
{
    char buf[BUFSIZ], * pword, * pmin; // объявляем переменные.
    int minlen, curlen; // тоже
 
    printf("String: "); // печать сообщения на экран
    if ( ! fgets(buf, BUFSIZ, stdin) ) // если ничего не введено, закрываем программу и возвращаем машинный код 0x1
        return 1;
 
    if (( pmin = strtok(buf, DELIM) ) == NULL) // если не найдено ни одного слова (хотя не уверен. Я бы даже убрал эту проверку)
        return 1;
 
    minlen = strlen(pmin); // присвоение минимальной длины слова
 
    while ( pword = strtok(NULL, DELIM) ) // цикл: пока строка делится по подстрокам (strtok)
    {
        if ( ( curlen = strlen(pword) ) < minlen ) // если длина подстроки меньше минимальной длины
        {
            pmin = pword; // копирование слова
            minlen = curlen; // присвоение нового минимального значения
        }
    }
 
    printf("Shortest word: %s\n", pmin); // печать результата
    getch(); // ждем нажатия любой клавиши
    
    return 0; // возвращаем ноль ( 0х0 )
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2012, 22:52     Вычисление наименьшего введенного слова (написать комментарий к каждой строке)
Еще ссылки по теме:

Дан текстовый файл, содержащий целые числа. В каждой строке этого файла найти сумму наибольшего и наименьшего элементов и записать их в другой C++

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

Или воспользуйтесь поиском по форуму:
workout
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 54
27.12.2012, 22:52  [ТС]     Вычисление наименьшего введенного слова (написать комментарий к каждой строке) #13
когда убираю проверку,ошибку пишет

Добавлено через 46 минут
Спасибо всем за помощь!
Yandex
Объявления
27.12.2012, 22:52     Вычисление наименьшего введенного слова (написать комментарий к каждой строке)
Ответ Создать тему
Опции темы

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