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

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

Восстановить пароль Регистрация
 
*Аленочка*
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 21
28.03.2010, 08:25     С++ Одномерный массив #1
Нужно решить задачу на С++, с одномерным массивом:
Поменять местами последний нулевой и последний нечетный элемент в одномерном массиве.Просчитать среднее арифметическое элементов между ними. Оформить с функциями.если возможно и с использованием русификатора) Rus)
Заранее спасибо! Очень буду признательна!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2010, 08:25     С++ Одномерный массив
Посмотрите здесь:

C++ одномерный массив
Одномерный массив C++
Одномерный массив C++
одномерный массив C++
массив одномерный C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Зоти Сергей
 Аватар для Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
28.03.2010, 19:31     С++ Одномерный массив #2
Так, где-то...
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();
}
*Аленочка*
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 21
29.03.2010, 09:52  [ТС]     С++ Одномерный массив #3
А будут еще варианты-этот хороший,но не такой как нужно( попроще намного Есть варианты,если есть можете выложить сюда пожалуйста)
Creep
 Аватар для Creep
0 / 0 / 1
Регистрация: 26.01.2010
Сообщений: 6
06.04.2010, 09:50     С++ Одномерный массив #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
27
28
29
30
31
32
33
34
35
#include<iostream>
#include<string>
#include <algorithm>
#include <vector>
using namespace std;
 
int main(){
    int n,nul ,odd; 
    double s=0;
    cin  >> n;
    int* ar = new int[n];
    for (int i =0 ; i< n; i++){
        cin >> ar[i];
        if (ar[i] == 0){
            nul = i;
        }
        if (ar[i] % 2 == 1){
            odd = i;
        } 
    }
    swap(ar[nul],ar[odd]);
    if (odd > nul){
        for (int i = (nul+1) ; i < odd;i++){
            s+=ar[i];
        }
        s /= (odd-nul- 1);
    }else{
        for (int i = odd+1;i < nul;i++)
            s+=ar[i];
        s /= (nul - odd - 1);
    }
    for (int i = 0; i< n; i++)
        cout << ar[i] << " ";
    cout <<endl<< s << endl;
}
Yandex
Объявления
06.04.2010, 09:50     С++ Одномерный массив
Ответ Создать тему
Опции темы

Текущее время: 20:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru