Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 2
Регистрация: 28.12.2014
Сообщений: 12

Одномерные массивы: исправить ошибки

09.01.2015, 23:33. Показов 923. Ответов 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
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
 
int main()
{
    int *arr, n, i;
    float A[20];
    
    cout << "Enter size of array: ";
    cin >> n;
    arr = new int[n];
 
    for (i = 0; i < n; i++)
    {
        cout << i << ": ";
        cin >> arr[i];
    }
    //arr = new int[20]; // динамический массив твой
    //srand(time(NULL));
    //int num;
    //for (int i = 0; i < 20; i++)
    //{
        //num = rand() % 20 + 1; // случайные числа от 0 до 20
        //arr[i] = num;
    //}
    //for (int i = 0; i < 20; i++) { cout << arr[i] << " "; }
    //cout << endl;
    //delete[]arr;
    //1-----------------------------------------------      
    float c, counter = 0;
    cout << "Enter c: ";
    cin >> c;
    for (i = 0; i < n; i++)
    if (arr[i] > c)
        counter++;
    cout << "Elements > c: " << counter;
    //2-----------------------------------------------  
    int max = abs(arr[0]);
    for (i = 0; i < n; i++)
    if (arr[i] > max)
    {
        max = abs(arr[i]);
        counter = i;
    }
 
    int mult = 1;
    for (i = counter; i < n; i++)
        mult *= arr[i];
    cout << "\nMultiplication of elements after max |element|: " << mult;
    //3-----------------------------------------------      
    for (i = 0; i < n; i++)
    if (arr[i] != 0 && abs(arr[i] - 1) > abs(arr[i]))
    {
        int tmp = arr[i];
        for (int j = 0; j < i; j++)
            arr[i - j] = arr[i - j - 1];
        arr[0] = tmp;
    }
 
    cout << "\nReorganised:\n";
    for (i = 0; i < n; i++)
        cout << arr[i] << ' ';
    cout << endl;
 
    delete[]arr;
    system("pause");
}
1) сделать так, чтобы использовался массив вещественных чисел.
2) реализовать заполнение случайными числами.
3) Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом - все положительные(элементы, равные 0, считать положительными)
Примечание 1: если в задании сказано, что нужно массив преобразовать (!) (а не упорядочить), то при перемещении элементов в какую-то одну другую часть массива они должны сохранять исходный порядок по отношению друг к другу. Т.е., если массив, например, был такой: {-5.2, 3, -1.5, 10, 2} и, если сказано, что нужно преобразовать его таким образом, чтобы сначала располагались все положительные, а потом все отрицательные элементы, то это не (!) значит, что массив нужно отсортировать по убыванию. Массив в итоге должен выглядеть так: {3, 10, 2, -5.2, -1.5}. Примечание 2: для решения 3-й задачи не разрешается использовать дополнительный массив. Все преобразования необходимо выполнять в исходном массиве.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.01.2015, 23:33
Ответы с готовыми решениями:

Найти и исправить ошибки в коде (массивы)
y=0; for(i=1;i&lt;=F;i++) { y=y+w*x; cout&lt;&lt;y; } Выдает нули для всех y. Помогите новичку пожалуйста.

Прошу исправить ошибки в задании. Массивы
Известны длины участков пути (в км), которые проехали 25 легковых автомобилей, и время, затраченное каждым из них (в часах). Определить...

Исправить ошибки в коде (указатели и массивы)
Ребята, помогите пожалуйста проставить указатели в массиве, я не понимаю как это должно выглядеть для двумерного массива, на коментарии не...

2
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
10.01.2015, 14:57
Цитата Сообщение от Bask1 Посмотреть сообщение
Т.е., если массив, например, был такой: {-5.2, 3, -1.5, 10, 2} и, если сказано, что нужно преобразовать его таким образом, чтобы сначала располагались все положительные, а потом все отрицательные элементы, то это не (!) значит, что массив нужно отсортировать по убыванию. Массив в итоге должен выглядеть так: {3, 10, 2, -5.2, -1.5}.
Для этого надо просто сдвинуть все положительные по очереди вперед.

Добавлено через 56 секунд
Цитата Сообщение от Bask1 Посмотреть сообщение
Помогите, пожалуйста исправить ошибки.
Код C++

Некорректная фраза.
Это не ошибки. Вам надо написать программу. Пишите.
Мы если что - поправим, посоветуем.
Ну или пошлём. Это как повезет.
1
0 / 0 / 2
Регистрация: 28.12.2014
Сообщений: 12
11.01.2015, 15:01  [ТС]
Вообщем задание таково: На основе составленных алгоритмов в среде Visual Studio 2013 написать консольную программу (общую для всех трех заданий, т.е. все три задачи в программе должны выполняться последовательно одна за другой) на языке С/C++ с использованием одномерных динамических массивов вещественных (!) чисел размера n (n вводит пользователь). Должно быть реализовано два способа заполнения массива: ручное (элементы массива вводит сам пользователь) и автоматическое (элементы массива генерируются случайным образом в задаваемом пользователем диапазоне). Пользователь должен иметь возможность сам выбрать один из этих двух способов заполнения массива. Возможность такого выбора может быть реализована в виде меню. Примечание 1: если в задании сказано, что нужно массив преобразовать (!) (а не упорядочить), то при перемещении элементов в какую-то одну другую часть массива они должны сохранять исходный порядок по отношению друг к другу. Т.е., если массив, например, был такой: {-5.2, 3, -1.5, 10, 2} и, если сказано, что нужно преобразовать его таким образом, чтобы сначала располагались все положительные, а потом все отрицательные элементы, то это не (!) значит, что массив нужно отсортировать по убыванию. Массив в итоге должен выглядеть так: {3, 10, 2, -5.2, -1.5}. Примечание 2: для решения 3-й задачи не разрешается использовать дополнительный массив. Все преобразования необходимо выполнять в исходном массиве.
Нужно:
1)Найти количество элементов массива, больших С.
2)Найти произведение элементов массива, расположенных после максимального по модулю элемента.
3)Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом – все положительные (элементы, равные 0, считать положительными).

И сама программа:
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
#include <iostream>
#include <cmath>
using namespace std;
 
void main()
{
    int *arr, n, i;
 
    cout << "Enter size of array: ";
    cin >> n;
    arr = new int[n];
 
    for (i = 0; i < n; i++)
    {
        cout << i << ": ";
        cin >> arr[i];
    }
    //1----------------------------------------------      
    int c, counter = 0;
    cout << "Enter c: ";
    cin >> c;
    for (i = 0; i < n; i++)
    if (arr[i] > c)
        counter++;
    cout << "Elements > c: " << counter;
    //2----------------------------------------------  
    int max = abs(arr[0]);
    counter = 0;
    for (i = 0; i < n; i++)
    if (abs(arr[i]) > max)
    {
        counter = i;
        max = abs(arr[i]);
    }
    int mult = 1;
    for (i = counter + 1; i < n; i++)
        mult *= arr[i];
    if (counter == n - 1)
        mult = 0;
    cout << "\nMultiplication of elements after max |element|: " << mult;
 
    //3---------------------------------------------      
    double tmp;
    int k = 0;
    for (int i = 0; i < n; i++){
        if (arr[i] < 0){
            tmp = arr[k];
            arr[k] = arr[i];
            arr[i] = tmp;
            k++;
        }
    } 
 
    cout << "\nReorganised:\n";
    for (i = 0; i < n; i++)
        cout << arr[i] << ' ';
    cout << endl;
 
    delete[]arr;
    system("pause");
}
Подскажите, пожалуйста, что у меня не так.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.01.2015, 15:01
Помогаю со студенческими работами здесь

Функции и массивы: найти и исправить ошибки в коде
Я написал три функции, но после запуска, выводят ошибки, что не так? // Вариант 1. // Выполнить задания третьего семинара...

В одномерном массиве все отрицательные заменить максимальным элементом
Здравствуйте уважаемы программисты! И снова я прибегаю к вашей помощи! Вот задачка: В одномерном массиве все отрицательные заменить...

Подсчитать количество элементов массива, отличающихся от заданного не более чем на 0.5, и сумму положительных элементов
Привет можете посмотреть мой код и сказать что подправить.(не уверен правильно ли считает числа отличающиеся от заданнго на 0.5) ...

Вычислить сумму элементов массива, удовлетворяющих неравенству
Помогите пожалуйста. Вычислить сумму элементов последовательности x1, x2, …, xn (n&lt;=20), удовлетворяющих неравенству а &lt; x...

Одномерные массивы
Задать 2 вектора A(n) и B(m). Выполнить такие задания: -найти вектора C, D и E из элементов векторов A и B так, чтобы в С находились...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru