Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/112: Рейтинг темы: голосов - 112, средняя оценка - 4.62
0 / 0 / 1
Регистрация: 16.12.2009
Сообщений: 116
1

Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности положительных чисел

19.09.2010, 20:26. Показов 20545. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, которая определяет максимальное
число из введенной с клавиатуры последовательности положительных
чисел (длина последовательности неограниченна). Ниже
приведен рекомендуемый вид экрана во время выполнения
профаммы (данные, введенные пользователем, выделены полужирным
шрифтом).
Определение максимального числа последовательности положительных
чисел.
Вводите после стрелки числа. Для завершения ввода введите ноль.
-> 56
-> 75
-> 43
-> О
Максимальное число: 75
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2010, 20:26
Ответы с готовыми решениями:

Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности положительных чисел...
Задача 3. Написать программу, которая вводит с клавиатуры последовательность из пяти дробных чисел...

Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности отрицательных чисел
Написать программу, которая определяет максимальное число из введенной с клавиатуры...

Цикл do while. Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности
Как написать программу, которая определяет максимальное число из введенной с клавиатуры...

Написать программу, которая определяет минимальное число среди положительных в введенной с клавиатуры последовательности
Написать программу с использованием операторов цикла while или do "-" "while." Последовательность...

8
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
19.09.2010, 20:36 2
hoochie,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <vector>
 
int main()
{
    std::vector<int> Vec;
    int i=0;
    while(1)
    {
        std::cout<<"Enter i. 0 for end\n";
        std::cin>>i;
        if(i==0)
           break;
        Vec.push_back(i);
    }
    std::vector<int>::iterator It=std::max_element(Vec.begin(), Vec.end());
    if(It!=Vec.end())
       std::cout<<"Max is: "<< *It <<'\n';
    return 0;
}
2
0 / 0 / 1
Регистрация: 16.12.2009
Сообщений: 116
19.09.2010, 23:13  [ТС] 3
спасибо!
0
52 / 52 / 10
Регистрация: 25.05.2010
Сообщений: 182
19.09.2010, 23:22 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std ;
 
int main()
{
        int i = 0;
        int max = 0 ;
        
        cout<<"Enter i. 0 for end\n";
        while(1)
        {
                cout<<"-> " ;
                cin>>i;
                if(i==0)
                      break;
                if( i > max )
                        max = i ;
        }
        cout<<"Max is: "<< max <<'\n';
        return 0;
}
KISS
1
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
19.09.2010, 23:23 5
time2die, В моем коде отнюдь нет усложнения.
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
19.09.2010, 23:29 6
Два решения на Си.

Через тип данных стек:
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 <stdio.h>
#include <stdlib.h>
 
typedef struct STACK
{
    struct STACK *next;
    int data;
   
} stack_t;
 
void push(stack_t **stack, int value)
{
    stack_t *node = NULL;
       
    if((node = (stack_t *)malloc(sizeof(stack_t))) == NULL) {
        perror("Can't allocated memory for stack node\n");
        return;
    }
    
    node->next = *stack == NULL ? NULL : *stack;
    node->data = value;
    *stack = node;
}
 
void pop(stack_t **stack)
{
    stack_t *top = *stack;
    
    if(*stack == NULL) {
        perror("Stack is empty\n");
        return;
    }
    
    *stack = top->next;    
    free(top);
}
 
int top(stack_t **stack) 
{
    if(*stack == NULL) {
        perror("Stack is empty\n");
        return 0;    
    }
    
    return (*stack)->data;
}
 
int main()
{
    int i = 0;
    int max = 0;
    stack_t *stack = NULL;
    
    do {
        printf("> ");
        if(scanf("%d", &i) != 1)
            break;
        if(i != 0)    
            push(&stack, i);
    }
    while(i != 0);
    
    while(stack != NULL) {
        if(top(&stack) > max)
            max = top(&stack);
        
        pop(&stack);
    }
    
    printf("max: %d", max);
    
    return 0;
}
Через динамическое перераспределение памяти:
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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int *values = NULL;
    int *ptr = NULL;
    int size = 0;
    int max = 0;
    int val = 0;
    int i = 0;
    
    for(;;) {
        printf("> ");
        scanf("%d", &val);
        
        if(val == 0)
            break;
            
        if((ptr = (int *)realloc(values, ++size)) == NULL) {
            fprintf(stderr, "can't allocate memory\n");
            free(values);
            return EXIT_FAILURE;
        }
        
        values = ptr;
        values[size - 1] = val;
    }
    
    for(i = 0; i < size; ++i) {
        if(values[i] > max)
            max = values[i];
    }
    
    free(values);
    
    printf("max: %d\n", max);
    
    return EXIT_SUCCESS;
}
1
0 / 0 / 1
Регистрация: 16.12.2009
Сообщений: 116
19.09.2010, 23:31  [ТС] 7
O_O
ого
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
19.09.2010, 23:39 8
симпатичная рекурсия:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
 
int max(int start) {
    int val = 0;
    
    printf("> ");
    scanf("%d", &val);
   
    if(!val)
        return start;
        
    return max(start > val ? start : val);
}
 
int main()
{
    printf("max: %d\n", max(0));
    return 0;
}
2
52 / 52 / 10
Регистрация: 25.05.2010
Сообщений: 182
20.09.2010, 00:44 9
Lavroff, не обиды ради, а искуства для - не зачем плодить лишние сущности(вектор), тем более задача хранения ряда в условия не входила, в то время как указывалась потенциальная возможность его безграничности, которая могла вылиться в исчерпание памяти
0
20.09.2010, 00:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2010, 00:44
Помогаю со студенческими работами здесь

Написать программу, которая определяет минимальное число и сумму всех чисел в введенной с клавиатуры последовательности
Нужна помощь

Написать программу которая определяет максимальное число с введенной с клавиатуры последовательности положительных чисел
Написать программу которая определяет максимальное число с введенной с клавиатуры...

Написать программу, которая определяет максимальное число из введенной последовательности положительных чисел
Ввожу числа через пробел в textBox1 и мне надо вырезать и сравнивать каждое число отдельно и потом...

Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности отрицательных чисел
Написать программу, которая определяет максимальное число из введенной с клавиатуры...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru