Próbuje wmontować tutaj dynamiczną alokację pamięci, słabo to wychodzi. Pomocy :(
#include<stdlib.h>
#include<string.h>
#define MARKA_SIZE 30
#define ILOSC_AUT 5
#define WYSZUKAJ_NAJTANSZY 1
#define WYSZUKAJ_NAJMLODSZY 2
#define WYSZUKAJ_BEZWYPADKOWE 3
typedef struct {
char Marka[MARKA_SIZE];
int Rocznik;
long Cena;
char Bez_wypadkowy;
} Auto;
int Menu(){
int w = 0;
printf("\n========================================\n");
printf("1. Wypisz Zawarocs Komisu\n\n");
printf("Wyszukaj:\n");
printf("2. Najtanszy samochow\n");
printf("3. Najmlodszy rocznik\n");
printf("4. Auta bezwypadkowe\n\n");
printf("5. Wyjdz\n");
printf("========================================\n");
do{
printf("\nKtora z powyzszych opcji wybierasz?: ");
fflush(stdin);
scanf("%d", &w);
}while(w < 1 && w > 5);
printf("Twoj wybor: %d\n", w);
printf("#################################################\n\n");
return w;
}
void wpisz_auto(Auto ptr[]){ // zapis ptr[] jest rownoznaczy z *ptr
char m[MARKA_SIZE];
int r = 0;
long c = 0;
char b;
printf("Podaj marke auta: ");
fflush(stdin);
scanf("%s", m);
printf("Podaj rocznik auta: ");
fflush(stdin);
scanf("%d", &r);
printf("Podaj cene auta: ");
fflush(stdin);
scanf("%ld", &c);
printf("Czy samochod jest bez wypadkowy ?(t/n): ");
fflush(stdin);
scanf("%c", &b);
// pobieranei danych zakonczone
strcpy(ptr->Marka, m);
ptr->Rocznik = r;
ptr->Cena = c;
ptr->Bez_wypadkowy = b;
printf("Dziekuje.\n");
}
void wypisz_auto(Auto ptr[]){
printf("Marka auta : %s\n", ptr->Marka);
printf("Rocznik : %d\n", ptr->Rocznik);
printf("Cena : %ld\n", ptr->Cena);
printf("Bez wypadkowy : %c\n", ptr->Bez_wypadkowy);
}
void wyszukaj(Auto ptr[], int opcja){
int i;
int t=0; //temp
if(opcja == WYSZUKAJ_NAJTANSZY){
printf("Najtanszy samochod\n");
for(i=1;i<ILOSC_AUT; i++)
if(ptr[i].Cena < ptr[t].Cena)
t = i;
wypisz_auto(&ptr[t]);
}else if(opcja == WYSZUKAJ_NAJMLODSZY){
printf("Najmlodszy samochod\n");
for(i=1;i<ILOSC_AUT; i++)
if(ptr[i].Rocznik > ptr[t].Rocznik)
t = i;
wypisz_auto(&ptr[t]);
}else{
printf("Samochody bez wypadkowe\n");
for(i=0;i<ILOSC_AUT; i++)
if(ptr[i].Bez_wypadkowy == 't')
wypisz_auto(&ptr[i]);
}
}
void wypisz_komis(Auto ptr[]){
int i;
for(i=0;i<ILOSC_AUT;i++){
wypisz_auto(&ptr[i]);
}
}
void inicjuj(Auto ptr[]){
int i=0;
for(;i<ILOSC_AUT; i++)
wpisz_auto(&ptr[i]);
}
int main(){
Auto Komis[ILOSC_AUT];
int wybor;
inicjuj(Komis);
do{
wybor = Menu();
system("cls");
if(wybor==1) wypisz_komis(Komis);
if(wybor==2) wyszukaj(Komis, WYSZUKAJ_NAJTANSZY);
if(wybor==3) wyszukaj(Komis, WYSZUKAJ_NAJMLODSZY);
if(wybor==4) wyszukaj(Komis, WYSZUKAJ_BEZWYPADKOWE);
}while(wybor!=5);
return 0;
}