С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.12.2020
Сообщений: 106
1

Сжать массив, удалив из него все элементы, модуль которых не превышает 1 (ошибка в коде)

09.03.2021, 17:25. Показов 724. Ответов 5

Author24 — интернет-сервис помощи студентам
Не работает часть в строке 88-99.
Вот если что условие для задание: сожмите массив, удалив из него все элементы, модуль которых не превышает 1. Элементы, освободившихся в конце массива, заполните нулями
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
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "ukr"); // Устанавливаем украинский вывод символов
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int i, n, nno = 0, npo = 0;
    bool flag = 0;
    double sum = 0;
    printf_s("Введите количество элементов массива: ");
    scanf_s("%i", &n);
    double* A = new double[n];
 
    //Ввод массиву
   
    for (i = 0; i < n; i++)
    {
        printf_s("Введите %i элемент массива: ", i + 1);
        scanf_s("%lf", &A[i]);
    }
    
    //Вывод массиву
    
    printf("\nВаш массив: ");
    for (i = 0; i < n; i++)
    {
        printf_s("%lg ", A[i]);
    }
    
    //Нахождение суммы нечетных элементов
    for (i = 0; i < n; i++)
    {
        if (i % 2 == 0)
        {
            sum += A[i];
        }
        if (A[i] < 0)
        {
            if (flag == 0)
            {
                nno = i;
                flag = 1;
            }
            else npo = i;
        }
    }
    printf("\nСума элементов массива с нечетными номерами: %lg\n", sum);
    system("pause");
    cin.get();
    system("cls");
    
    printf("\nВаш массив: ");
    for (i = 0; i < n; i++)
    {
        printf_s("%lg ", A[i]);
    }
 
    //Сумма элементов массива, расположенных между первым и последним отрицательными элементами
 
    if (flag == 0) printf_s("Нет отрицательных элементов\n");
    else
        if (flag && npo == 0) printf_s("Один отрицательный элемент \n");
        else
            if (nno + 1 == npo) printf_s("Отрицательные числа стоят рядом\n");
            else
            {
                sum = 0;
                for (i = nno + 1; i < npo; i++)
                    sum += A[i];
                printf_s("\nСумму элементов массива, расположенных между первым и последним отрицательными элементами = %lg\n", sum);
            }
    system("pause");
    cin.get();
    system("cls");
 
    printf("\nВаш массив: ");
    for (i = 0; i < n; i++)
    {
        printf_s("%lg ", A[i]);
    }
    
    //это часть не работает 
    int Work(double* A, int n);
    {
        int a = 0;
        for (int i = 0; i < n; i++)
        {
            if (abs(A[i] >= 1))
                A[a++] = A[i];
        }
        for (int i = a; i < n; i++)
            A[i] = 0;
            return a;
    }
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
09.03.2021, 17:25
Ответы с готовыми решениями:

Сжать массив, удалив из него все элементы, модуль которых не превышает 1
В одномерном массиве, состоящем из п вещественных элементов, вычислить: Сжать массив, удалив из...

Сжать массив, удалив из него все элементы, модуль которых не превышает 1
В одномерном массиве, состоящем из n действительных элементов, сжать массив, удалив из него все...

Сжать массив, удалив из него все элементы, модуль которых не превышает 1
Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не...

Сжать массив, удалив из него все элементы, модуль которых не превышает 1
Здравствуйте. Задача такая: П.5.16.Правил Запрещено создавать темы с множеством вопросов во всех...

5
Модератор
Эксперт С++
13722 / 10919 / 6478
Регистрация: 18.12.2011
Сообщений: 29,148
09.03.2021, 17:44 2
Sasha_hutsul, не стоит подсовывать какую-то левую программу в качестве образца для решаемой задачи.
Уберите из нее все лишнее, оставьте только то, что Вы понимаете.
0
0 / 0 / 0
Регистрация: 08.12.2020
Сообщений: 106
09.03.2021, 18:02  [ТС] 3
Вот полное условие к заданию:
В одномерном массиве, состоящем из n действительных элементов, найдите:
сумму элементов массива с нечетными номерами;
сумму элементов массива, расположенных между первым и последним отрицательными элементами;
сожмите массив, удалив из него все элементы, модуль которых не превышает 1. Элементы, освободившихся в конце массива, заполните нулями.
0
1046 / 967 / 153
Регистрация: 10.08.2015
Сообщений: 5,222
10.03.2021, 02:29 4
Цитата Сообщение от Sasha_hutsul Посмотреть сообщение
В одномерном массиве, состоящем из n действительных элементов
Цитата Сообщение от Sasha_hutsul Посмотреть сообщение
Элементы, освободившихся в конце массива, заполните нулями.
ничего не смущает?
0
0 / 0 / 0
Регистрация: 08.12.2020
Сообщений: 106
10.03.2021, 09:27  [ТС] 5
Хз, я не понимаю как это) Это задание из лабораторной
0
1046 / 967 / 153
Регистрация: 10.08.2015
Сообщений: 5,222
10.03.2021, 11:01 6
тебе еще рано делать эту лабораторную, если ты не понимаешь разницу между нулем и даблом. это раз

вложенные функции в с++ не поддерживаются. это два
раз уж задал украинскую локаль, пиши по-украински. это три
раз уж используешь с++, пиши на с++ а не на си. это четыре
и не нужно называть функции бессмысленными названиями. это пять
0
10.03.2021, 11:01
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
10.03.2021, 11:01
Помогаю со студенческими работами здесь

Сжать массив, удалив из него все элементы, модуль которых не превышает 1.
В одномерном массиве, состоящем из 20 вещественных элементов, вычислить: 1) сумму элементов...

Сжать массив, удалив из него все элементы, модуль которых не превышает единицу
Задание: Сжать массив, удалив из него все элементы, модуль которых не превышает единицу....

Сжать одномерный массив, удалив из него все элементы, модуль которых не превышает 1
Сжать одномерный вещественный массив, удалив из него все элементы, модуль которых не превышает 1....

Сжать массив, удалив из него все элементы. модуль которых не превышает, заданного числа.
Дан одномерный массив. Сжать массив, удалив из него все элементы. модуль которых не превышает,...

Сжать массив, удалив из него все элементы модуль которых не превышает 1. Заполнить эти элементы нулями
Во время перестановки, когда первый 0 достигает конца массива, выскакивает ошибка и прога...

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1
Помогите пожалуйста написать программу: Дан целочисленный массив размера N. Сжать массив, удалив из...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru