Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
*Аленочка*
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 21
#1

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

28.03.2010, 08:25. Просмотров 704. Ответов 3
Метки нет (Все метки)

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

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) - C++
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий...

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив - C++
ввести двумерный массив I . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...

Массив: Все элементы массива, кратные трем, записать в одномерный массив. - C++
Дан двумерный массив размером n x n? заполненный целыми числами. Все его элементы кратные трем, записать в одномерный массив.

Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив - C++
Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив. #include <iostream> using namespace std; ...

Переписать произвольный одномерный массив в другой массив в обратном порядке - C++
Помогите написать прогу, вот задание. Переписать произвольный одномерный массив в другой массив в обратном порядке.

3
Зоти Сергей
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();
}
1
*Аленочка*
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 21
29.03.2010, 09:52  [ТС] #3
А будут еще варианты-этот хороший,но не такой как нужно( попроще намного Есть варианты,если есть можете выложить сюда пожалуйста)
0
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;
}
0
06.04.2010, 09:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2010, 09:50
Привет! Вот еще темы с ответами:

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию - C++
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию. получилось вот что: #include...

Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы. - C++
Пожалуйста, помогите решить простым методом задачку, просто не могу понять смысл ее выполнения. Дан двумерный массив 3х3.Получить...

Сформировать одномерный массив, удалить первый элемент с заданным значением, сдвинуть массив циклически - C++
1)сформировать одномерный массив целых чисел 2)удалить первый элемент с заданным значением 3)сдвинуть массив циклически на К элементов...

Организовать одномерный массив с вещественными числами и найти первый и последний отрицательный элемент массив - C++
Организовать одномерный массив с вещественными числами и найти первый и последний отрицательный элемент массива;


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

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

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