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

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

Войти
Регистрация
Восстановить пароль
 
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 156
#1

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

13.11.2012, 16:10. Просмотров 1319. Ответов 6
Метки нет (Все метки)

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

C++ Если последний элемент массива положителен, то все элементы массива увеличить на квадрат его максимального элемента
C++ Разделить элементы массива на первый элемент
Работа с массивом.Разделить элементы K-ой строки на диагональный элемент массива C++
Дан массив а1,а2,,…,аn. Переставить его элементы так, чтобы в начале массива расположились все его неотрицательные элементы, а в конце – отрицательные C++
Дан массив а1+ a2+…+an Переставить его элементы так чтобы в начале массива расположились все его неотрицательные элементы, а в конце - отрицательные C++
C++ Первый элемент массива 1 умножить на все элементы массива 2 и вывести результат
Заменить все элементы массива, меньшие 5, на его минимальный элемент C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3068 / 1870 / 196
Регистрация: 13.01.2012
Сообщений: 7,122
13.11.2012, 16:22     Разделить все элементы массива на его первый элемент #2
Цитата Сообщение от Evgeniy_Fox Посмотреть сообщение
Задание. Сделать это задание
не подумайте что я мозгокрут, но что вы уже сделали?
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 156
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
Модератор
3068 / 1870 / 196
Регистрация: 13.01.2012
Сообщений: 7,122
14.11.2012, 10:37     Разделить все элементы массива на его первый элемент #4
Цитата Сообщение от Evgeniy_Fox Посмотреть сообщение
Вот
термоядерная штука. без стеба. и чем помочь то? вон сколько понаписано - не работает что ли?
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 156
14.11.2012, 13:38  [ТС]     Разделить все элементы массива на его первый элемент #5
Саму программу не могу сделать, понять не могу, как сделать вот это:
а) Разделить все элементы массива на его первый элемент;
б) увеличить все элементы массива в два раза;
в) уменьшить элементы массива на число A.
vxg
Модератор
3068 / 1870 / 196
Регистрация: 13.01.2012
Сообщений: 7,122
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++
Найти первый отрицательный элемент массива и его индекс C++
Разделить все элементы массива на его максимальный элемент C++
C++ Найти минимальный элемент массива и упорядочить все элементы левее его по убыванию, а правее – по возрастанию
C++ Дан массив. Уменьшить все его элементы на минимальный элемент массива

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

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

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