Witam dziś na kolokwium miałem takie zadanie i nie wiem jak to ugryźć. Zadanie w języku C.
Zadaniem programu jest wykonanie operacji na liście jednokierunkowej przechowującej informacje o
samochodach. Lista reprezentowana jest przez zmienną wskaźnikową do pierwszego elementu listy
(head).
Struktura węzła:
typedef struct Element{
char marka[LIMIT];
char model[LIMIT];
int cena;
struct Element *next;
}Element;
Napisz funkcje:
1pkt
void dodajSamochod(Element **head, char *marka, char *model, int cena)
dodającą
do listy nowy węzeł z samochodem. Nowy węzeł dodawany jest na początek listy.
1pkt
void wypisz(Element **head)
wypisującą wszystkie elementy listy jeden pod drugim np.:
Renault Laguna 1 - 5700
Audi A6 - 36000
…
2pkt
void konwersja(Element **head, int T[])
wypełniającą jednowymiarową tablicę cenami
samochodów.
1pkt
void sortuj(int T[])
która posortuje ceny w tablicy od największej do najmniejszej.
1pkt
void kupujemy(Element **head)
, której wywołanie spowoduje „kupno” pierwszego samochodu
na liście, czyli usunięcie pierwszego elementu listy.
**
Fragment programu:**
#include <stdio.h>
//#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define LIMIT 100
#define ILOSC_SAMOCHODOW 30
// Typ elementów listy
//--------------------
typedef struct Element{
char marka[LIMIT];
char model[LIMIT];
int cena;
struct Element *next;
}Element;
//Prototypy funkcji
void dodajSamochod(Element **head, char *marka, char *model, int cena);
void wypisz(Element **head);
void konwersja(Element **head, int T[]);
void sortuj(int T[]);
void kupujemy(Element **head);
int main(void)
{
int i;
int T[ILOSC_SAMOCHODOW];
Element *head = NULL;
char *samochody[][2] = {{"Audi", "A4"},{"Renault", "Laguna 1"},{"Audi", "A6"},{"Fiat", "Panda"},{"Opel", "Corsa"},{"Hyundai", "i30"},
{"BMW", "E60"},{"Peugeot", "508"},{"Honda", "Civic"},{"Volkswagen", "Passat"},{"Nissan", "Almera"},{"Peugeot", "Boxer"},
{"Polonez", "Caro"},{"Saab", "900"},{"Jaguar", "XF"},{"Kia", "Ceed"},{"Renault", "Scenic"},{"Lancia", "Thema"},
{"Renault", "Thalia"},{"Lancia", "Delta"},{"Audi", "A4"},{"Volkswagen", "Sharan"},{"Audi", "S4"},{"Peugeot", "206"},
{"Mazda", "CX7"},{"Peugeot", "407"},{"Honda", "CRX"},{"Toyota", "Corolla"},{"Chrysler", "Voyager"},{"Toyota", "Avensis"}};
srand(time(0));
//Dodawanie samochodow do listy
for(i=0;i<ILOSC_SAMOCHODOW;i++)
{
dodajSamochod(&head, samochody[i][0], samochody[i][1], 1000+rand()%50000);
}
//wypisanie listy
wypisz(&head);
//utworzenie jednowymiarowej tablicy dynamicznej z cenami
konwersja(&head, T);
//wypisanie tablicy
printf("\n\n");
for(i=0;i<ILOSC_SAMOCHODOW;i++) printf("%d\n",T[i]);
//sortowanie cen
sortuj(T);
//wypisanie tablicy
printf("\n\n");
for(i=0;i<ILOSC_SAMOCHODOW;i++) printf("%d\n",T[i]);
//kupno samochodu
kupujemy(&head);
//wypisanie listy
printf("\n\n");
wypisz(&head);
printf("\n");
system("pause");
return 0;
}