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

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

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

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

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

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

одномерный массив - C++
Здравствуйте, помогите решить данную задачу: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. Сумму...

Одномерный массив - C++
Найти все простые числа меньше n, используя сетку Эратосфена. Сеткой Эратосфена называется такой алгоритм: выпишем подряд все числа от 2 до...

Одномерный массив - 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
А будут еще варианты-этот хороший,но не такой как нужно( попроще намного Есть варианты,если есть можете выложить сюда пожалуйста)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2010, 09:50     С++ Одномерный массив
Еще ссылки по теме:

Одномерный массив - C++
Сформировать одномерный массив из суммы отрицательных кратных 7, элементов кратной строки массива а(10,5).

Одномерный массив - C++
Найти сумму между минимальным и максимальным элементом массива.

Одномерный массив E(n) - C++
Помогите решить задачу Одномерный массив E(n); n=10 Найти максимальный и минимальный элемент среди четных.

Одномерный массив - C++
Найти самую длинную строчку последовательности элементов одномерного массива,образующую геометрическую прогрессию.


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

Или воспользуйтесь поиском по форуму:
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     С++ Одномерный массив
Ответ Создать тему
Опции темы

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