Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Culfo
4 / 2 / 2
Регистрация: 13.12.2018
Сообщений: 30
1

удалить элемент

06.02.2019, 18:19. Просмотров 158. Ответов 3

Структура проекта состоит из: фамилия студента, дата, расходы на завтрак, обед, ужин в студенческой столовой.

Задание: удалить элемент из структуры.

Код для удаления не работает, зацикливается. Помогите найти ошибку.

Вот структура:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#define FIO_SIZE 15
#define DAT_SIZE 11
#define AR_SIZE 30
struct stud {
    char fio[AR_SIZE];
    char data[AR_SIZE];
    double breakfast;
    double lunch;
    double supper;
}s1,s2;
stud ar[AR_SIZE]={
 {"Петров О.В","              2018-11-30",     11.30,    0.0,        45.45},
 {"Иванов А.Р","              2018-11-23",      75.40,    30.00,    85.70},
 {"Сидоров Д.С","           2018-11-25",      76.45,    5.00,      40.30},
 {"Николаев В.А","          2018-11-25",      15.30,    0.0,        60.00},
 {"Петров А.В","              2018-06-10",      32.30,    53.50,    99.9}
};
int size = 5;
int cmp(stud s1,stud s2);
int cmp2(stud s1, stud s2);
Код для удаления:
C++ (Qt)
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
void delElementProstOneEl( int &size ){
    cout<<"Введите строку для удаления: ";
    int el;
    cin>>el;
    if(el<0 || el>size){cout<<"Неправильный номер!";}
    size --;
    for (int i=el ; i<size ; i ++){
        for(int j=0;j<13;j++){
        ar[i].fio[j] = ar[i+1].fio[j];
        ar[i].data[j] = ar[i+1].data[j];}
        ar[i].breakfast=ar[i+1].breakfast;
        ar[i].lunch=ar[i+1].lunch;
        ar[i].supper=ar[i+1].supper;
    }
    showAr(size);
}
void showAr(int size){
    for(int sl=0;sl<size;sl++){
        cout<<setw(12)<<ar[sl].fio
            <<setw(12)<<ar[sl].data
            <<setw(12)<<ar[sl].breakfast
            <<setw(12)<<ar[sl].lunch
            <<setw(12)<<ar[sl].supper
            <<endl;
    }
 
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2019, 18:19
Ответы с готовыми решениями:

Структура "Информация": - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить элемент перед элемент
Структура &quot;Информация&quot;: - носитель; - объем; - название; - автор. Удалить первый элемент с...

Двусвязный список - Добавить элемент после заданного, удалить заданный элемент
Реализуйте списочную структуру в виде класса. работа состоит из двух частей: из класса (структуры,...

Как удалить нужный элемент из списка или заменить этот элемент на другой?
Доброго времени суток, господа! Есть список: list&lt;double&gt; list1; Есть возможность добавить в...

Найти в двумерном массиве максимальный элемент и удалить строку и столбцы, содержащие найденный элемент
Программу ищет в двумерном массиве максимального элемента и удаляет строку и столбцы, содержащего...

Односвязный список: удалить элемент списка, если он чётный и следующий элемент отрицательный и нечётный
Здравствуйте. Задание на односвязные списки: удалить элемент списка, если он чётный и следующий...

3
SomniPhobia
352 / 256 / 101
Регистрация: 22.11.2017
Сообщений: 707
06.02.2019, 18:46 2
Culfo, привет! Ты не перетаскивай удаляемый элемент в конец массива со сдвигом. Лучше поменяй удаляемый элемент массива сразу с последним элементом и сделай пометку, что 1 последний не действителен.
0
Culfo
4 / 2 / 2
Регистрация: 13.12.2018
Сообщений: 30
07.02.2019, 21:49  [ТС] 3
Не сочтите за наглость, но можете помочь написать код? Суть понимаю, но вот как это сделать не пойму.
0
ReDoX
438 / 326 / 170
Регистрация: 01.07.2015
Сообщений: 1,162
07.02.2019, 21:56 4
До уменьшения size:

C++
1
swap(ar[i], ar[size - 1]);
потом --size.
0
07.02.2019, 21:56
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2019, 21:56

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

Динамический двусвязный список (операции: добавить элемент после данного, удалить данный элемент …)
реализовать Динамический двусвязный список (операции: добавить элемент после данного, удалить...

Удалить каждый K элемент массива пока не останется 1 элемент
Есть задача удалить каждый K элемент массива пока не останется 1 уцелевший. Вот пример ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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