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

Разделить все элементы массива на его первый элемент - C++

Восстановить пароль Регистрация
 
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 150
13.11.2012, 16:10     Разделить все элементы массива на его первый элемент #1
Задание. Сделать это задание:
Дан массив целых чисел. а) Разделить все элементы массива на его первый элемент; б) увеличить все элементы массива в два раза; в) уменьшить элементы массива на число A.
Но нужно сделать массив динамический и чтобы заполнять его можно было случайно и вручную, т.е. нужно swith сделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 16:10     Разделить все элементы массива на его первый элемент
Посмотрите здесь:

C++ Если последний элемент массива положителен, то все элементы массива увеличить на квадрат его максимального элемента
C++ Разделить элементы массива на первый элемент
Дан массив а1,а2,,…,аn. Переставить его элементы так, чтобы в начале массива расположились все его неотрицательные элементы, а в конце – отрицательные C++
Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все элементы данного массива с четными номерами, во второ C++
C++ Массивы. Первый элемент массива 1 умножить на все элементы массива 2 и вывести результат...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,281
13.11.2012, 16:22     Разделить все элементы массива на его первый элемент #2
Цитата Сообщение от Evgeniy_Fox Посмотреть сообщение
Задание. Сделать это задание
не подумайте что я мозгокрут, но что вы уже сделали?
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 150
13.11.2012, 18:33  [ТС]     Разделить все элементы массива на его первый элемент #3
Вот...

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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
// Lab2(19).cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <ctime>
 
using namespace std;
 
int *arr = NULL;    //объявление массива
int arn = 0;    //кол-во элементов массива
 
int enterMenu();
 
int menu()  //главное меню
{
    int k = 0, l = 0;   //номер пункта меню
    for(;;){
        cout << "1.Ввод элементов массива" << endl;
        cout << "2.Обработка массива" << endl;
        cout << "3.Вывод массива на экран" << endl;
        cout << "4.Удалить массив" << endl;
        cout << "5.Выход" << endl;
        k = enterMenu();
        if (k>0 && k<6)
            break;
        else
            cout << "Неверный номер пункта, повторите ввод" << endl;
    }
    switch (k){
        case 1: //Заполнение массива
            for(;;){
                cout << "Выберите способ заполнения" << endl;
                cout << "1.Автоматическое заполнение" << endl;
                cout << "2.Ручное заполнение" << endl;
                l = enterMenu();
                if (l>0 && l<3)
                    break;
                else
                    cout << "Неверный номер пункта, повторите ввод" << endl;
            }
            switch (l)
            {
            case 1: //Автоматическое заполнение
                return 11;
            case 2: //Ручное заполнение
                return 12;
            default:
                break;
            }
        case 2: //Операции над массивом
            if (arr)    //если массив определен
            {
                for(;;){
                    cout << "1.среднее арифметическое всех положительных элементов" << endl;
                    cout << "2.сумму элементов, расположенных до максимального элемента" << endl;
                    l = enterMenu();
                    if (l>0 && l<3)
                        break;
                    else
                        cout << "Неверный номер пункта, повторите ввод" << endl;
                }
                switch (l)
                {
                case 1:
                    return 21;
                case 2:
                    return 22;
                default:
                    break;
                }
            }
            else
            {
                cout << "Для обработки массива, заполниете его!" << endl;
                break;
            }
        case 3:
            if (arr)    //если массив определен
                return 3;
            else
            {
                cout << "Массив не определен" << endl;
                break;
            }
        case 4:
            if (arr)
                return 4;
            else
            {
                cout << "Массив не определен" << endl;
                break;
            }
 
        case 5:
            return 5;
    }
    return 0;
}
 
int enterMenu() //Выбор номера пункта меню
{
    int s = 0;
    do {
        cout << "Введите номер пункта: ";
        cin.clear();    //сброс битов ошибок входного стандартного потока
        cin.sync(); //очищение буфера стандартного ввода
        cin >> s;
    } while( cin.fail() );  //проверка на ошибку предыдущего ввода со стандартного потока
    return s;
}
 
int enterSize() //Размер массива
{
    int n = 0;
    do {
        cout << "Введите размер массива: ";
        cin.clear();    //сброс битов ошибок входного стандартного потока
        cin.sync(); //очищение буфера стандартного ввода
        cin >> n;
    } while( (n < 1) || (  cin.fail() ) );  //проверка на ошибку предыдущего ввода со стандартного потока
    return n;
}
 
void handFill() //ручное заполнение массива
{
    if (arr)    //если массив определен
        delete [] arr;  //удаление динамически выделенного массива
    arr = NULL;
    arn = enterSize();  //размер массива
    arr = new int[arn]; //динамическое выделение массива
    for (int i = 0; i < arn; i++)   //заполнение элементов массива
    {
        cout << "Введите элемент массива [" << i << "]: ";
        cin >> arr[i];  //ввод i элемента массива
    }
}
void autoFill() //автоматическое заполнение массива
{
    if (arr)
        delete [] arr;
    arr = NULL;
    arn = enterSize();
    arr = new int[arn];
    srand(time(0));
    for (int i = 0; i < arn; i++)
    {
        arr[i] = rand()%101 - 50;   //заполнение псевдослучайными числами от -50 до 50
    }
}
 
void show() //вывод массива на экран
{
    for (int i = 0; i < arn; i++)
        cout << arr[i] << ' ';
    cout << endl;
}
 
 
 
 
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    
    for (;;)
    {
        int num = menu();   //пункт меню
        if (num == 11)
            autoFill();
        else if (num == 12)
            handFill();
        else if (num == 21)
            printMid();
        else if (num == 22)
            printSum();
        else if (num == 3)
            show();
        else if (num == 4)
            delArr();
        else if (num == 5){
            cout << "Завершение программы" << endl;
            return 0;
        }
    }
    return 0;
}
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,281
14.11.2012, 10:37     Разделить все элементы массива на его первый элемент #4
Цитата Сообщение от Evgeniy_Fox Посмотреть сообщение
Вот
термоядерная штука. без стеба. и чем помочь то? вон сколько понаписано - не работает что ли?
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 150
14.11.2012, 13:38  [ТС]     Разделить все элементы массива на его первый элемент #5
Саму программу не могу сделать, понять не могу, как сделать вот это:
а) Разделить все элементы массива на его первый элемент;
б) увеличить все элементы массива в два раза;
в) уменьшить элементы массива на число A.
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,281
14.11.2012, 13:54     Разделить все элементы массива на его первый элемент #6
1
C++
1
2
3
for (int i = 1; i < arn; i++)
    arr[i] /= arr[0];
arr[0] = 1;
2
C++
1
2
for (int i = 0; i < arn; i++)
    arr[i] *= 2;
3
C++
1
2
for (int i = 0; i < arn; i++)
    arr[i] -= A;
Добавлено через 47 секунд
...для человека реализовавшего такой суровый интерфейс странно испытывать проблемы с 1, 2, 3...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 12:42     Разделить все элементы массива на его первый элемент
Еще ссылки по теме:

C++ Все отрицательные элементы заданного массива L (11) разделить на максимальный элемент этого массива. Вывести максимальный элемент, начальный и преобра
C++ Проверить, упорядочены ли элементы, заменить первый нулевой элемент и удалить указанный элемент из массива
Разделить все элементы одномерного массива с четными номерами на первый элемент C++

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

Или воспользуйтесь поиском по форуму:
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 150
15.11.2012, 12:42  [ТС]     Разделить все элементы массива на его первый элемент #7
vxg, спасибо большое! Очень помог!
Yandex
Объявления
15.11.2012, 12:42     Разделить все элементы массива на его первый элемент
Ответ Создать тему
Опции темы

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