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

С++ Одномерный массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализация стека http://www.cyberforum.ru/cpp-beginners/thread109594.html
Помогите создать структуру данных типа "стек", элементы которого занимают 10 кб. Операции, вы-полняемые над стеком: проверить, стек пуст/не пуст; втолкнуть элемент; вытолкнуть элемент; просмотреть вершину стека; обменять значения двух верхних элементов стека.
C++ Вопрос о стеке На сколько я знаю, подпрограмма которая выполняется рекурсивно, кидает в стек копию своих параметров, и так пока стек не переполнится... У меня такая штука: void f(int i){ char num; do{ ... num=getch(); switch(num){ http://www.cyberforum.ru/cpp-beginners/thread109582.html
C++ Visual C++ одномерный массив
Даны 10 целых чисел.найти порядковый номер второго положительного числа. Напишите пожалуйста эту программу
Вывод последовательности симболов C++
Здраствуйте, Буду очень признателен если кто либо откликнется и поможет с решением задачками на Си, вот собствено условие: Считывает последовательность символов (0 – конец последователь*ности). Подсчитывает количества вхождений в последовательность: цифр 3, 7, букв К или к. Нарисовать частотную гистограмму с помощью звездочек. Использовать: операторы выбора switch (в языке C) для рисования...
C++ Из С++ в С http://www.cyberforum.ru/cpp-beginners/thread109567.html
Нужно перевести из С++ в С #include <list> #include <iostream> #include <conio.h> #include <cstdlib> using namespace std; int main(int argc, char* argv) {
C++ Проверить, одинаковое ли число открывающихся и закрывающихся скобок в данной строке 3. Проверить, одинаковое ли число открывающихся и закрывающихся скобок в данной строке...кто-нибудь знает прогу??? подробнее

Показать сообщение отдельно
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
28.03.2010, 19:31     С++ Одномерный массив
Так, где-то...
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <windows.h>
 
#define NO_ERROR            0
#define ERROR_NO_NULL_OR_ODD    1
#define ERROR_NO_DISTANCE       2
//---------------------------------------------------------------------------
void PrintArray(int * Array, int ElementsAmount)
{
    for(int i=0;i<ElementsAmount;i++)
        {
            cout<<Array[i]<<" ";
        }
        cout<<"\n";
}
//---------------------------------------------------------------------------
void SwapElements(int * Array, int FirstIndex, int SecondIndex)
{
    int TempValue = Array[FirstIndex];
        Array[FirstIndex]=Array[SecondIndex];
        Array[SecondIndex]=TempValue;
}
//---------------------------------------------------------------------------
int GetLastNullAndOddElements(int * Array, int ElementsAmount, int &OutNullIndex, int &OutOddIndex)
{
    bool OddFounded=false;
        bool NullFounded=false;
        
    for(int i=ElementsAmount-1;i>=0;i--)
        {
            if(!OddFounded)
                if(Array[i]%2)
                        {
                            OddFounded=true;
                                OutOddIndex=i;
                        }
                if(!NullFounded)
                if(!Array[i])
                        {
                            NullFounded=true;
                                OutNullIndex=i;
                        }
        }
        if(!(OddFounded&NullFounded))
            return ERROR_NO_NULL_OR_ODD;
        if(abs(OutOddIndex-OutNullIndex)<=1)
            return ERROR_NO_DISTANCE;
        return NO_ERROR;
}
//---------------------------------------------------------------------------
void FillArray(int * Array, int ElementsAmount)
{
        char RussianMessage[255];
        char *Message="Введите элемент №";
        CharToOem(Message,RussianMessage);
    for(int i=0;i<ElementsAmount;i++)
        {
 
            cout<<RussianMessage<<i<<" : ";
                cin>>Array[i];
        }
}
//---------------------------------------------------------------------------
double CalculateAverage(int * Array, int Start,int End)
{
    double Average=0;
        for(int i=Start+1;i<End;i++)
            Average+=(double)Array[i];
        return Average/(double)(End-Start-1);
}
//---------------------------------------------------------------------------
int main()
{
        int Temp;
    int * Array =NULL;
        int NumberOfElements;
        int ErrorResult;
        int OddElement,NullElement;
        double AverageResult;
        char*Message;
        char RussianMessage[255];
        Message="Введите кол-во элементов: ";
        CharToOem(Message,RussianMessage);
        cout <<RussianMessage;
        cin >> NumberOfElements;
        if(NumberOfElements<=0)
        {
            Message="Ошибка!!! Значение должно быть больше нуля. Программа будет завершена";
                CharToOem(Message,RussianMessage);
            cout<<RussianMessage;
                goto cleanup;
        }
        Array = new int[NumberOfElements];
        FillArray(Array,NumberOfElements);
        Message="Массив до преобразования :";
        CharToOem(Message,RussianMessage);
        cout<<RussianMessage<<"\n";
        PrintArray(Array,NumberOfElements);
        ErrorResult=GetLastNullAndOddElements(Array,NumberOfElements,NullElement,OddElement);
        if(ErrorResult!=NO_ERROR)
        {
        switch(ErrorResult)
                {
                    case ERROR_NO_NULL_OR_ODD:
                            Message="Ошибка!!! Нулевой или нечетный элементы отсутствуют. Программа будет завершена";
                    CharToOem(Message,RussianMessage);
                    cout<<RussianMessage;
                        break;
                        case ERROR_NO_DISTANCE:
                            Message="Ошибка!!! Нулевой и нечетный элементы распологаются друг с другом. Программа будет завершена";
                    CharToOem(Message,RussianMessage);
                    cout<<RussianMessage;
                        break;
                }
                goto cleanup;
        }
        SwapElements(Array,NullElement,OddElement);
        Message="Массив после преобразования :";
        CharToOem(Message,RussianMessage);
        cout<<RussianMessage<<"\n";
        PrintArray(Array,NumberOfElements);
        AverageResult=CalculateAverage(Array, min(NullElement,OddElement),max(NullElement,OddElement));
        Message="Среднее значение между двумя найденными элементами: ";
        CharToOem(Message,RussianMessage);
        cout<<RussianMessage<<AverageResult;
        cleanup:
        if(Array)
        delete Array;
        getch();
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru