#include #include //prototipoak int menu (); void datuakHasieratu (char *erakIz, int *erakPr, int Topea); void erosketa (char *izenak, int *Produktuak, int Topea); void diruaTxertatuTaAukeratu (int *erakDi, int *erakPr, int T); void produktuakAukeran (int Di, char *erakI, int *erakP, int T); void pantailaratu (char *erakIz, int *erakPr, int Topea); void main () {//aldagai erazagupena int Auk, TaulaProduktuak [10][2]; char TaulaIzenak [10][40]; clrscr(); Auk = menu (); while (Auk != 3) {switch (Auk) {case 1: {datuakHasieratu (&TaulaIzenak [0], &TaulaProduktuak[0][0], 10); break;} case 2: {erosketa (&TaulaIzenak[0][0], &TaulaProduktuak[0][0], 10);} }//switch bukaera pantailaratu (&TaulaIzenak [0][0], &TaulaProduktuak[0][0], 10); Auk = menu(); } puts ("\nSakatu tekla bat jarraitzeko..."); getch(); } int menu () { int Aukeraketa, Onargarria; do { puts ("\n\n1- Datuak hasieratu"); puts ("2- Erosketa"); puts ("3- Irten"); puts ("Aukeratu bat:"); scanf ("%d", &Aukeraketa); if (Aukeraketa < 1 || Aukeraketa > 3) {Onargarria = 0; puts ("Aukeraketa desegokia"); } else {Onargarria = 1; } }while (!Onargarria); return (Aukeraketa); } void datuakHasieratu (char *erakIz, int *erakPr, int Topea) { int J; for (J = 0; J!=Topea; erakIz = erakIz+ 40, erakPr = erakPr +2, J++) {do { printf ("\nIdatzi %d produktuaren izena kopurua eta prezioa:\n", J); scanf ("%s %d %d", erakIz, erakPr, (erakPr + 1)); } while (*erakIz == "" || *erakPr < 0 ||*(erakPr+1) <0 || *(erakPr+1)%5!=0); } } void erosketa (char *Izenak, int *Produktuak, int Topea) { int Dirua, Prod; diruaTxertatuTaAukeratu (&Dirua, &Prod, Topea); if (Dirua >= *(Produktuak +(Prod*2)+1) && *(Produktuak+(Prod*2)) >0) {*(Produktuak +(Prod*2)) = *(Produktuak +(Prod*2))-1; Dirua = Dirua - *(Produktuak +(Prod*2)+1); printf ("\n20 zentimoko %d eta 5 zentimoko %d txanpon", Dirua / 20, ((Dirua%20) / 5)); } else {produktuakAukeran (Dirua, Izenak, Produktuak, Topea); } } void diruaTxertatuTaAukeratu (int *erakDi, int *erakPr, int T) { do { printf ("Zenbat diru (5-aren anizkoitza) eta zein produktu (0-%d) adierazi\n", T-1); scanf ("%d %d",erakDi, erakPr); } while (*erakDi < 0 || (*erakDi % 5) != 0 || *erakPr < 0 || *erakPr>T-1); } void produktuakAukeran (int Di, char *erakI, int *erakP, int T) { int J; for ( J=0; J= *(erakP+1) && *(erakP)>0) {puts (erakI);} } puts ("Sakatu tekla bat..."); getch(); } void pantailaratu (char *erakIz, int *erakPr, int Topea) { int J; for (J = 0; J!=Topea; erakIz = erakIz+ 40, erakPr = erakPr +2, J++) { printf ("%s -> %5d unitate, %5d zentimo bakoitza\n", erakIz, *erakPr, *(erakPr + 1)); } }