Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
J_I
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 9
#1

Написать программу удаления книги из массива структур с введенным именем автора - C++

17.04.2013, 15:26. Просмотров 1063. Ответов 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
#include <iostream.h>
#include <conio.h>
main ()
{ struct library
{ char avtor[30];
char book[30];}
p[5];
int i;
char o;
char A[30];
for (i=0; i<5; i++)
{ cout<<" Vvedi avtora ";
cin>>p[i].avtor;
cout<<" Vvedi knigu ";
cin>>p[i].book;}
cout<<" Vvedi imya avtora ";
cin>>A;
for (i=0; i<5; i++)
{if (p[i].avtor==A)
p[i].avtor==o;
p[i].book==o;}
for (i=0; i<5; i++)
cout<<" \n"<<p[i].avtor<<" \t"<<p[i].book;
getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2013, 15:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Написать программу удаления книги из массива структур с введенным именем автора (C++):

Написать программу удаления книги из массива структур с введенным именем автора - C++
Написать программу удаления книги из массива структур с введенным именем автора

Написать программу добавления новой книги в начало массива структур - C++
Написать программу добавления новой книги в начало массива структур.

Написать программу добавления новой книги в начало массива структур. - C++
Написать программу добавления новой книги в начало массива структур.

Написать программу добавления новой книги в начало массива структур - C++
как правильно составить код , так как преподователь не понятно что требует. изучаем C++ а пишим программы на С Задние: Написать...

Написать программу для удаления нуля в начале массива - C++
Всем привет помогите удалить 0 в начале массива . Например 0252 ,должно показаться 252 ;

Написать программу удаления заданного числового значения из массива объединений - C++
Написать программу удаления заданного числового значения из массива объединений

1
rangerx
1941 / 1550 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
17.04.2013, 19:10 #2
if (p[i].avtor==A)
Это сравнение адресов первых элементов массивов, а не строк. Сравнивать C-строки можно только посимвольно(например, c помощью функции strcmp).
p[i].avtor==o;
p[i].book==o;
Здесь вы, как я понимаю, подразумевали присваивание(символ =), а не сравнение... Во-первых переменная o у вас ничем не инициализирована, а во-вторых, присвоить что-либо массиву используя его имя нельзя. Если вы хотите "обнулить" строки, то можно просто записать первым элементом символ '\0'(естественно, сами элементы массива p от этого никуда не "удаляться").
Цитата Сообщение от J_I Посмотреть сообщение
именно функцию УДАЛЕНИЯ мы ещё типа не проходили
Удалить из массива ничего нельзя. Весь процесс "удаления" сводится к сдвигу элементов массива влево и затеранию тем самым "удаляемых" элементов
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
#include <string.h>
#include <iostream.h>
#include <conio.h>
 
int main ()
{
    struct library
    {
        char author[30];
        char book[30];
    } p[5];
 
    int i, j;
    char author[30];
    int n = sizeof(p) / sizeof(library);
 
    for(i = 0; i < n; ++i)
    {
        cout << " Vvedi avtora ";
        cin >> p[i].author;
        cout << " Vvedi knigu ";
        cin >> p[i].book;
    }
 
    cout<<" Vvedi imya avtora ";
    cin >> author;
 
    //.....................
    for(i = 0, j = 0; i < n; ++i)
    {
        if(strcmp(p[i].author, author) != 0)
        {
            p[j] = p[i];
            ++j;
        }
    }
    n = j;
    //.....................
 
    for(i = 0; i < n; ++i)
        cout << p[i].author << " \t" << p[i].book << "\n";
    getch();
 
    return 0;
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2013, 19:10
Привет! Вот еще темы с ответами:

Программа удаления учреждений с указанным весом из массива структур с объединением - C++
Вот код #include &quot;stdafx.h&quot; #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; #include &lt;clocale&gt; #include &lt;conio.h&gt; ...

Как назвать переменную именем, введенным пользователем? - C++
Недавно начал изучать C++. Скажите пожалуйста, как назвать переменную значением из другой переменной? Вот код простой программы и как...

Удалить книги заданного автора - C++
Необходимо разработать программу для создания и работы с двусвязным списком, состоящим из структур. Структура содержит название книги,...

Найти автора указанной книги - C++
1. Дано файл Biblioteka, содержащий сведения о 5 книг. Сведения о каждой книге - это: фамилия автора, название книги и год издания. Найти...


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

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

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