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

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

28.09.2018, 13:31. Показов 3920. Ответов 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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru