Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sortowanie alfabetyczne wyrazów tablicy struktury w C

Ostatnio zmodyfikowano 2018-02-01 17:52
Autor Wiadomość
Bercik97
Temat założony przez niniejszego użytkownika
Sortowanie alfabetyczne wyrazów tablicy struktury w C
» 2018-02-01 16:48:26
Witam, mam takie zadanie żeby napisać program, który zczytuje tytuł, autora i cenę książki, zapisuje wartości do tablicy struktury i na koniec wyświetla cenę wszystkich książek oraz wyświetla alfabetycznie tytuły książek, wraz z autorami i ceną. No i własnie mam problem z tym sortowaniem. Wiem, że da się to zrobić na piechotę podobnie jakbym sortował liczby ale to dużo roboty i na pewno jest jakiś krótszy sposób. Znalazłem taki kod w C++ i próbowałem go przenieść do C (oczywiście ze zmienioną składnią) ale nie wiem dlaczego nie działa, pomoże ktoś?
C/C++
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;

int main()
{
    string wyrazy[ 5 ];
   
    cout << "Podaj dziesięć wyrazów:\n";
   
    //BASIA KASIA DARIA ANNA KAMILA
    for( int i = 0; i < 5; i++ ) cin >> wyrazy[ i ];
   
    sort( wyrazy, wyrazy + 5 );
   
    cout << "Elementy posortowane:\n";
    for( int i = 0; i < 5; i++ )
         cout << wyrazy[ i ] << endl;
   
    cin.ignore();
    cin.get();
   
    return 0;
}

Mój kod:
C/C++
#include <stdio.h>
#include <stdlib.h>

struct ksiazka
{
    char tytul[ 40 ];
    char autor[ 40 ];
    float wartosc;
};

struct ksiazka ksiazki[ 100 ];

int main()
{
    int i, ile, suma = 0, * a;
    printf( "Ile ksiazek: " );
    scanf( "%d", & ile );
    for( i = 0; i < ile; i++ )
    {
        printf( "Tytul #%d.", i + 1 );
        scanf( "%s", ksiazki[ i ].tytul );
        printf( "Autor #%d.", i + 1 );
        scanf( "%s", ksiazki[ i ].autor );
        printf( "Wartosc #%d.", i + 1 );
        scanf( "%f", & ksiazki[ i ].wartosc );
        suma += ksiazki[ i ].wartosc;
    }
    //a=(int *)calloc(ile, sizeof(int));
   
    puts( "Oto lista twoich ksiazek w porzadku alfabetycznym: " );
   
    return 0;
}
P-169167
YooSy
» 2018-02-01 17:20:09
Co nie działa i gdzie jest kod odpowiedzialny za sortowanie?
P-169168
Bercik97
Temat założony przez niniejszego użytkownika
» 2018-02-01 17:24:58
C/C++
puts( "Oto lista twoich ksiazek w porzadku alfabetycznym: " );
sort( ksiazki.tytul, ksiazki.tytul + ile );
for( i = 0; i < ile; i++ )
     printf( "%s %s %.2f\n", ksiazki.tytul[ i ], ksiazki.autor[ i ], ksiazki.wartosc[ i ] );

https://imgur.com/a/iA7Xj
P-169169
YooSy
» 2018-02-01 17:33:49
Implementację sort() pokaż.
Zarknij na » standard Cqsort.
P-169170
Bercik97
Temat założony przez niniejszego użytkownika
» 2018-02-01 17:52:10
Ok, czaje ale nie wiem czy uda mi się to zrobić, dzięki za pomoc.
P-169171
« 1 »
  Strona 1 z 1