Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
arsenij726
2 / 2 / 0
Регистрация: 16.08.2013
Сообщений: 23
1

Найти самое короткое слово в предложение и найти минимум функции

23.08.2013, 10:34. Просмотров 1228. Ответов 3
Метки нет (Все метки)

1) дано предложение в котором слова разделены запятой или пробелом а общая длинна меньше или равна 80
найти самое короткое слово в предложение

2) Найти минимум функции x^2-sinx методом золотого сечения

заранее спасибо!

 Комментарий модератора 
5.16 Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
Правила форума
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2013, 10:34
Ответы с готовыми решениями:

Найти самое длинное/самое короткое слово в строке
Здравствуйте! Помогите пожалуйста с задачей. Нужно найти самое длинное/самое...

Найти самое короткое слово в строке
есть программа для нахождения самого короткого слова в строке: #include...

Найти самое короткое слово в строке
Приветствую, ув. программисты, помогите пожалуйста с программкой. Задание:...

Найти самое короткое слово строки
Есть некоторая строка. Нужно найти самое короткое слово и вывести его на экран....

Найти самое короткое слово в строке
#include <stdio.h> int main(void) { FILE *ptr_file; char ch; ...

3
Anitsirh
9 / 9 / 4
Регистрация: 19.08.2013
Сообщений: 31
Завершенные тесты: 2
23.08.2013, 15:40 2
На 1 задание, получилось, что-то такое(если есть слова с одинаковой длиной, то выводит 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
31
32
33
34
35
36
37
38
#include<stdio.h>
#include<string.h>
#define MAX 80
int find(char in[])
{
    int i=0, k, m, b;
    b=-1; m=0;
    while (in[i]!='\0')
    {
        while (in[i]==' ' || in[i]==',') i++;
        for (k=0;in[i]!=',' && in[i]!=' ' && in[i]!='\0';i++,k++);
        if (k<m || m==0)
        {
            m=k;
            b=i-k;
        }
    }
return b;
}
int main()
{
    char sentence[MAX];
    puts("Введите предложение:");
    fgets(sentence, MAX, stdin);
    sentence[strlen(sentence)-1]='\0';
    int index=find(sentence);
    if(index==-1)
    {
        puts("Введено предложение без слов.");
        return -1;
    }
    printf("Самое короткое слово в предложении: ");
    int i;
    for(i=index;sentence[i]!='\0' && sentence[i]!=' ' && sentence[i]!=',';i++)
        printf("%c", sentence[i]);
    printf("\n");
    return 0;
}
1
andreysv
17 / 17 / 6
Регистрация: 02.07.2011
Сообщений: 67
24.08.2013, 20:50 3
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
#include <stdio.h>
#include <math.h>
#define FUNC(x) (pow(x, 2) - sin(x))
 
float goldslice_min(float x_min, float x_max, float prec) {
    float x1, x2, diff;
    while (x_max - x_min > prec) {
        diff = (x_max - x_min) * 0.3819660; 
        x1 = x_min + diff; 
        x2 = x_max - diff;
        if (FUNC(x1) < FUNC(x2))
            x_max = x2;
        else
            x_min = x1;
    }
    return (x_min + x_max) / 2;
}
 
int main() {
    float x_min, x_max, prec;
    puts("Введите интервал для поиска и точность (3 числа, через пробел):");
    scanf("%f %f %f", &x_min, &x_max, &prec);
    printf("%f\n", goldslice_min(x_min, x_max, prec));
    return 0;
}
Одна особенность. Если определить FUNC(x) как x2, то точность составляет 5 знаков после запятой (может 6).
А с синусом можно только до 3-х знаков включительно.
1
easybudda
Модератор
Эксперт CЭксперт С++
10105 / 6014 / 1507
Регистрация: 25.07.2009
Сообщений: 11,399
25.08.2013, 00:13 4
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
#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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2013, 00:13

Найти самое короткое слово в предложении
Самое короткое слово в предложении (Предложение - последовательность слов,...

Найти самое короткое слово в строке
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; #include...

Найти во введённой строке самое короткое слово
Найти во введённой строке самое короткое слово.


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

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

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