.
Отговор в тема
Резултати от 1 до 4 от общо 4

Тема: задача

  1. #1

    задача

    Здравейте пичове.Искам да ви питам за една задача на с++.Значи имаме библиотека.Въвеждаме брои книги за въвеждане.След това въвеждаме информацията за всяка една книга.Име на автор,име на книга,номер и цена.След това да изведе книга на определен автор(който ще въведем от клавиетурата) и освен това да сортира книгите по цена.Значи аз другото съм направил ама само на сортирането се затруднявам.Ако може някой да ми помогне.Ето и програмата:
    И да не забравя, програмата трябва да е с ФУНКЦИЯ,която да извикаме накрая.


    #include <iostream>
    #include <cstring>
    using namespace std;
    struct knigi
    {
    char name_autor[58];
    char name_book[58];
    char number[58];
    double cena;
    };
    void input(int m)
    {

    knigi a[56];
    for(int i=0;i<m;i++)
    {
    cout<<"vuvedi ime na avtora"<<" ";
    cin>>a[i].name_autor;
    cout<<"vuvedi ime na knigata"<<" ";
    cin>>a[i].name_book;
    cout<<"vuvedi nomer"<<" ";
    cin>>a[i].number;
    cout<<"vuvedi cena"<<" ";
    cin>>a[i].cena;
    }
    }
    void output(int m)
    {
    knigi a[56];
    for(int j=0;j<m;j++)
    {
    cout<<a[j].name_autor<<" ";
    cout<<a[j].name_book<<" ";
    cout<<a[j].number<<" ";
    cout<<a[j].cena<<" ";
    }
    }
    void tursene(int m)
    {
    knigi a[56];
    char avtor[45];
    cin.get();
    cin.getline(avtor,45);
    {
    for(int h=0;h<m;h++)
    {
    if(strcmp(avtor,a[h].name_autor)==0)
    {
    cout<<a[h].name_autor<<endl;
    cout<<a[h].name_book<<endl;
    cout<<a[h].number<<endl;
    cout<<a[h].cena<<endl;
    }
    }
    }
    }
    int main()
    {
    int m;
    cin>>m;
    input(m);
    output(m);
    tursene(m);
    return 0;
    }

  2. #2
    Повече от фен
    Регистриран на
    May 2010
    Мнения
    425
    int cmp(knigi t1,knigi t2) {
    if(t1.cena<t2.cena) return 1;
    return 0;
    }

    И в главната функция викаш cmp.
    sort(knigi,knigi+m,cmp);
    И си направи m и knigi[] глобални.

  3. #3
    В клас някак ей така го бяхме направили, ама не знам къде бъркам и ми излизат 2 грешкиno match for 'operator=' in 'a[g]=std::swap'| и другата |no match for 'operator=' in 'a[(g+1)]=std::swap'|
    #include <iostream>
    #include <cstring>
    using namespace std;
    struct knigi
    {
    char name_autor[58];
    char name_book[58];
    char number[58];
    double cena;
    };
    void input(int m)
    {

    knigi a[56];
    for(int i=0;i<m;i++)
    {
    cout<<"vuvedi ime na avtora"<<" ";
    cin>>a[i].name_autor;
    cout<<"vuvedi ime na knigata"<<" ";
    cin>>a[i].name_book;
    cout<<"vuvedi nomer"<<" ";
    cin>>a[i].number;
    cout<<"vuvedi cena"<<" ";
    cin>>a[i].cena;
    }
    }
    void output(int m)
    {
    knigi a[56];
    for(int j=0;j<m;j++)
    {
    cout<<a[j].name_autor<<" ";
    cout<<a[j].name_book<<" ";
    cout<<a[j].number<<" ";
    cout<<a[j].cena<<" ";
    }
    }
    void tursene(int m)
    {
    knigi a[56];
    char avtor[45];
    cin.get();
    cin.getline(avtor,45);
    {
    for(int h=0;h<m;h++)
    {
    if(strcmp(avtor,a[h].name_autor)==0)
    {
    cout<<a[h].name_autor<<endl;
    cout<<a[h].name_book<<endl;
    cout<<a[h].number<<endl;
    cout<<a[h].cena<<endl;
    }
    }
    }
    }
    void sort(int m)
    {
    knigi a[56];
    for(int h=0;h<m;h++)
    {
    for(int g=0;g<m;g++)
    {
    if(a[g].cena>a[g+1].cena)
    {
    a[g]=swap;
    a[g]=a[g+1];
    a[g+1]=swap;
    }}

    }
    }
    int main()
    {
    int m;
    cin>>m;
    input(m);
    output(m);
    sort(m);
    return 0;
    }

  4. #4
    Голям фен Аватара на lmao
    Регистриран на
    Feb 2007
    Мнения
    596
    double swap;
    swap = a[g];
    a[g] = a[g+1];
    a[g+1] = swap;
    So much anger aimed in no particular direction
    Just sprays and sprays



Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си