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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как определить нижезадданный пример? http://www.cyberforum.ru/cpp-beginners/thread167307.html
Определить удельный вес учащихся, имеющих оценки «неудовлетворительно» в общем количестве студентов по каждой специальности и в целом по университету.
C++ Вывести таблицу квадратов первых десяти целых положительных чисел Написать программу, которая выводит таблицу квадратов первых десяти целых положительных чисел. http://www.cyberforum.ru/cpp-beginners/thread167306.html
площадь треугольника, если известны координаты его углов. Введите координаты углов C++
Напишите программу, которая вычисляет площадь треугольника, если известны координаты его углов. Введите координаты углов (числа разделяйте пробелом): xl,yl -> -2 5 х2,у2 -> 1 7 хЗ,уЗ -> 5 -3 Ответ:23.56 кв.см.
C++ Правильно ли сделал
Нужно проверить правильно ли я сделал?? #include <iostream.h> #include <math.h> void main() { double k,a,n,m,p; cout <<"Vvedite M-->"; cin >> m; cout <<"Vvedite N-->";
C++ Литература по бинарным деревьям http://www.cyberforum.ru/cpp-beginners/thread167303.html
Здраствуйте. Надо сделать задание на бинарные деревья, я ничего о них не знаю. Может у кого есть какая литература где можно о них прочесть (для новичка). Спасибо заранее!!!!! Добавлено через 10 минут Переместите пожалуйста тему в С/C++ для начинающих!!!!!
C++ Нужен кусок программы. Доброго времени суток. Уважаемые программисты и сисадмины. опять пришел я к вам с прозьбой. и так. Нужен исходный код программы. Отыскивающий название процесса (описанных в proc.db ) и если такое название там есть, закрывает процесс. Хотелось бы добавить изыска в программу, типа антивируса. подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
19.09.2010, 23:29     Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности положительных чисел
Два решения на Си.

Через тип данных стек:
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;
}
 
Текущее время: 22:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru