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

Найти и исправить ошибки в коде

28.09.2018, 13:31. Показов 3903. Ответов 12

Студворк — интернет-сервис помощи студентам
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
#include <iostream>;
#include <ctime>;
#include <stdlib.h> 
using namespace::std;
void fillArray(int*, int);
 
void chetnArray(int*);
void addElement(int*);
void prstArray(int*);
void choicesSort(int*);
int pskChet(int*);
int n;
 
 
int main()
{   
    setlocale(LC_ALL,"Russian");
    srand(time(0));
    int mas[50];
    cout << "Введите размерность массива: "<< endl;
    cin >> n;
    fillArray(mas, n);
    for(int i =0; i<n; i++) 
    cout <<" "<< mas[i] ;
        cout<<endl;
    addElement(mas);
        cout<<endl<<endl<<"Поиск первого чётного: "<<endl;
    int r = pskChet(mas);cout<<" "<<r<<endl;
        cout<<endl<<"Перестановка элементов (минимальные и максимальные): ";
    prstArray(mas);
        cout<<endl<<endl<<"Сортировка выбором: "<<endl;
    choicesSort(mas);
        cout<<endl;
    chetnArray(mas); 
        cout<<endl;
    
 
    system("pause");
    return 0;
}
 
void fillArray(int *massiv, int number)
{
    for (int i = 0; i < number; i++)
        {
            massiv[i]= (rand() % 30);
        
    }
}
 
void chetnArray(int *massiv)
{ 
    cout << endl<< "Удаление N элементов начиная с K: "<< endl;
    for (int i = n-1; i >= 0; i--)
        {   
            if ((massiv[i]%2==0)&&(massiv[i]!=0)) 
            {  n--;for (int j=i;j<n;j++) massiv[j]=massiv[j+1];
            };
    }
   for (int i=0;i<n;i++)cout <<" "<< massiv[i];
}
 
 
void addElement(int *massiv)
{
    int k;
    cout << endl << "Добавить K элементов в начало массива: " << endl;
    cin >> k;
    for (int i=n;i>=0;i--) massiv[i+k]=massiv[i];
    fillArray(massiv,k);
    n=k+n;
    for(int i=0;i<n;i++)
        cout<<" "<<massiv[i];
    
 
}
 
void prstArray(int *massiv)
{
    cout<<endl;
    int ch[50],nch[50];
    int a=0,c=0,j=0;
    for (int i=0; i<n;i++)
    {
        if ((massiv[i]%2==0)&&(massiv[i]!=0))
        {ch[c]=massiv[i];
         c++;}
        else{nch[a]=massiv[i];
        a++;}
    }
    for (int i=0; i<c;i++){
        massiv[i]=ch[i];
            cout <<" "<< massiv[i];}
    for (int i=c;i<n;i++){
        massiv[i]=nch[j];
        j++;
            cout <<" "<< massiv[i];}
 
}
 
void choicesSort(int *massiv)
{
    for (int i = 0; i < n; i++)
    {
        int temp = massiv[0];
        for (int j = i + 1; j < n; j++)
        {
            if (massiv[i] > massiv[j])
            {
                temp = massiv[i];
                massiv[i] = massiv[j];
                massiv[j] = temp;
            }
        }
    }
    for (int i = 0; i < n; i++) cout<<" "<<massiv[i];
}
 
int pskChet(int *massiv)
{ 
    int m=0;
    for (int i=0; i<n;i++)
        if ((massiv[i]%2==0)&&(massiv[i]!=0))
        {
            m=i+1;
            break;
        }
 
    return m;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.09.2018, 13:31
Ответы с готовыми решениями:

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Найти ошибки в коде и исправить эти ошибки - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

Найти ошибки в коде и исправить эти ошибки
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

12
0 / 0 / 0
Регистрация: 20.07.2017
Сообщений: 7
28.09.2018, 13:42
1 ошибка - не вставить код в теги кода.
2 ошибка - не написать в чем выражается ошибка.
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
28.09.2018, 13:45
Код компилируется и исполняется без ошибок.
0
 Аватар для Jman
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
28.09.2018, 13:55
Как уже писали выше, ваш код работает без ошибок компиляции и рантайма(на первый взгляд). Проверял в Visual Stdio 2017
Возможно вы имеете ввиду свою ошибку. Тогда скажите что вы изначально хотели и какого рода ошибку вы имеете ввиду. Просто мы тут не обладаем навыками чтения чужих мыслей через интернет.
Миниатюры
Найти и исправить ошибки в коде  
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
28.09.2018, 14:27
zxcgf, просто взять и добавить элементы в массив как делаете Вы - будет использоваться чужая память, вместо поиска первого чётного происходит поиск его номера, причём неправильно.

все действия проводятся с первоначальным массивом или последовательно ?

прежде всего напишите условие задачи
0
2 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 147
29.09.2018, 08:11  [ТС]
Jman, при компиляции в dev-c++ выдает ошибку. ругается на одну из библиотек
0
2 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 147
29.09.2018, 08:25  [ТС]
Yetty, условие задачи в документе
Вложения
Тип файла: docx Прог отчет 3.docx (32.6 Кб, 3 просмотров)
0
2 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 147
29.09.2018, 08:26  [ТС]
Jman, вот такую ошибку выдает
Миниатюры
Найти и исправить ошибки в коде  
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
29.09.2018, 10:02
Лучший ответ Сообщение было отмечено zxcgf как решение

Решение

zxcgf, а что Вас до сих пор не смутила лишняя точка с запятой в конце инструкций:
Цитата Сообщение от zxcgf Посмотреть сообщение
#include <iostream>;
Цитата Сообщение от zxcgf Посмотреть сообщение
#include <ctime>;
Компилятор настойчиво об этом предупреждает.
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
29.09.2018, 11:37
Цитата Сообщение от zxcgf Посмотреть сообщение
условие задачи в документе
если нужно, чтобы код проверили на соответствие условию перепишите его, т.е. условие сюда
0
2 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 147
29.09.2018, 12:17  [ТС]
Yetty, 1) Сформировать массив из n элементов с помощью датчика случайных
чисел (n задается пользователем с клавиатуры).
2) Распечатать полученный массив.
3) Выполнить удаление указанных элементов из массива.
4) Вывести полученный результат.
5) Выполнить добавление указанных элементов в массив.
6) Вывести полученный результат.
7) Выполнить перестановку элементов в массиве.
8) Вывести полученный результат.
9) Выполнить поиск указанных в массиве элементов и подсчитать коли-
чество сравнений, необходимых для поиска нужного элемента.
10) Вывести полученный результат.
11) Выполнить сортировку массива указанным методом.
12) Вывести полученный результат.
13) Выполнить поиск указанных элементов в отсортированном массиве и
подсчитать количество сравнений, необходимых для поиска нужного эле-
мента.
14) Вывести полученный результат.
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
29.09.2018, 12:22
zxcgf, обратите внимание:
П.5.16.Правил
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.

Соответственно, Вы должны были разбить Вашу задачу на вопросы, которые не понимаете и на каждый из них создать отдельную тему.
Предположим, что вспомогательные операции (создание массива, удаление массива, ввод -вывод) Вы все-таки понимаете, тогда (жирным шрифтом выделены отдельные вопросы, которые Вы должны задать)
1) Сформировать массив из n элементов с помощью датчика случайных
чисел (n задается пользователем с клавиатуры).
2) Распечатать полученный массив.
3) Выполнить удаление указанных элементов из массива.
4) Вывести полученный результат.
5) Выполнить добавление указанных элементов в массив.
6) Вывести полученный результат.
7) Выполнить перестановку элементов в массиве.
8) Вывести полученный результат.
9) Выполнить поиск указанных в массиве элементов и подсчитать количество сравнений, необходимых для поиска нужного элемента.
10) Вывести полученный результат.
11) Выполнить сортировку массива указанным методом.
12) Вывести полученный результат.
13) Выполнить поиск указанных элементов в отсортированном массиве

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

14) Вывести полученный результат.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
29.09.2018, 13:16
zxcgf, в данной задаче нужно использовать динамический массив, т.к. размер массива не известен заранее, а задаётся с клавиатуры (работать будет и с статическим, но это не по стандарту С++). не указано что массив целочисленный - применяйте тип double.
В целом о задаче: условие неконкретизированное (например указанных элементов - как указанных - по значению, по индексу, по номеру, по промежутку, меньше или больше определённого числа, отрицательных, положительных ? добавление - в начало, на определённую позицию, в конец массива ? сортировка указанным методом - каким методом, как сортировать ? )
уточните эти моменты, создайте темы с конкретным условием на пункты в которых сомневаетесь.

пока покажу как добавить элемент в конец массива: (опять таки это не по условию, которое можно трактовать по -разному, просто чтобы Вы поняли суть):
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
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n;
    cout <<"n="; cin >>n;
 
    double*a = new double[n], *b = new double[n+1], e;
 
    for (int i = 0; i < n; i++)
      {
      a[i]=0.1*(rand()%99 + 1);
      b[i]=a[i];
      cout <<a[i]<<"  ";
      }
    delete[]a;
    
    cout <<"\nEnter element: "; cin >>e;
    
    b[n]=e;   
    
    a=b;
    
    for (int i = 0; i < n+1; i++)      
      cout <<a[i]<<"  ";      
    cout <<endl;    
    
    delete[]b;
system("pause");
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.09.2018, 13:16
Помогаю со студенческими работами здесь

Найти и исправить ошибки в коде
Помогите мне с членами Engine:Vector3 Если поможете огромное вам спасибо) Вот ошибки: Все ошибки:

Найти и исправить ошибки в коде
Microsoft Visual Studio 2017 Написала программу, вот код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;clocale&gt; ...

Найти и исправить ошибки в коде
Всем доброго времени суток. Посмотрите что за ошибки в программе у меня компилятор 8 ошибок выдает в том числе где сstdlib #include...

Найти и исправить ошибки в коде
SOS! Что сделал не так? #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int q; cout «...

Найти и исправить ошибки в коде
#include &lt;iostream&gt; #include &lt;math.h&gt; #define _USE_MATH_DEFINES double sqrt(double x); #define M_PI 3.14159265358979323846 /*...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru