Найти самое короткое слово в предложение и найти минимум функции - C (СИ)
Формулировка задачи:
1) дано предложение в котором слова разделены запятой или пробелом а общая длинна меньше или равна 80
найти самое короткое слово в предложение
2) Найти минимум функции x^2-sinx методом золотого сечения
заранее спасибо!
Решение задачи: «Найти самое короткое слово в предложение и найти минимум функции»
textual
Листинг программы
#include <stdio.h> #include <string.h> char * shortest_word(char * string, const char * delim) { char * currentWord = strtok(string, delim); if ( currentWord ) { char * nextWord = shortest_word(NULL, delim); if ( nextWord ) return ( strlen(currentWord) > strlen(nextWord) ) ? nextWord : currentWord; else return currentWord; } else return NULL; } #define DELIM " \t\n" int main(void) { char buf[BUFSIZ]; while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) printf("The first shortest word: %s\n", shortest_word(buf, DELIM)); return 0; }
Объяснение кода листинга программы
- В функции
shortest_word
определяется текущее слово в предложении с помощью функцииstrtok
. - Если текущее слово не равно
NULL
, то функция рекурсивно вызывается для следующего слова, пока не будет найдено самое короткое слово. - В функции
main
определяется буфер для ввода строки. - Пользователю предлагается ввести строку, и функция
fgets
используется для считывания строки из стандартного ввода. - Функция
shortest_word
вызывается для строки, введенной пользователем, и результат выводится на экран. - Цикл продолжается, пока пользователь не введет пустую строку.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д