#include #include #include void main() { char auk; // etapak[4][10]: etapak[datua][etapa zenbakia] // etapak[0]: km errepidean // etapak[1]: km harean // etapak[2]: denbora orduak // etapak[3]: denbora, minutuak int etapak[4][10]={ {25,450,0,0,25,80,120,0,0,0}, {0,0,350,500,470,135,480,780,630,50}, {0,3,4,6,5,3,6,10,8,0}, {16,27,15,35,43,26,20,15,49,55}}; int puntuak [15]; int multzoa, lasterkari, etapa; int ord, min, err, gel; int punt, max, maxkm; const float kamioiLK = 20/100, kotxeLK = 15/100, motoLK = 10/100; const int PMinutu = 10, PErregaia = 5, PGeldialdi = -2; randomize(); do { //autoerrepikakorra do{ //menua clrscr(); puts("\n\n\t\t\tBARCELONA --->-->-> DAKAR\n"); puts("\t\t1 - Etapen emaitzak jaso."); puts("\t\t2 - Lasterketaren puntuaketa finala. "); puts("\t\t3 - Etapa luzeena."); puts("\t\t4 - Kamioi, kotxe ala motoen puntuaketak."); puts("\t\t5 - Irten"); printf("\n\n\tAukeratu bat: "); scanf ("%i", &auk); } while (auk < 1 || auk > 5); switch (auk) //Zer aukeratu du? { case 1: // Datuak eskatu, baieztatu eta puntuaketa kalkulatu {clrscr(); for (etapa=0; etapa<10; etapa++) { for (lasterkari=0; lasterkari<15; lasterkari++) { clrscr(); printf ("%i etapan %i lasterkariaren ", etapa, lasterkari); do { puts ("\n\t orduak: "); //scanf ("%i", &ord); ord = random (10); }while (ord < 0); do { puts ("\n\t minutuak: "); //scanf ("%i", &min); min = random (60); }while (min < 0 || min > 59); do { puts ("\n\t erregaia: "); //scanf ("%i", &err); err = random (100); }while (err <0); do { puts ("\n\t geldialdiak: "); //scanf ("%i", &gel); gel = random (10); }while (gel <0); punt = ((etapak [etapa][2] - ord)*60 + (etapak [etapa][3] - min)) * PMinutu; if (lasterkari < 5) //kamioi {punt = punt + ((etapak[0][etapa]+etapak[1][etapa])*kamioiLK - err) * PErregaia;} else { if (lasterkari < 10) //Kotxe {punt = punt + ((etapak[0][etapa]+etapak[1][etapa])*kotxeLK - err) * PErregaia;} else //Moto {punt = punt + ((etapak[0][etapa]+etapak[1][etapa])*motoLK - err) * PErregaia;} } punt = punt + gel * PGeldialdi; puntuak [lasterkari] += punt; } } break; } case 2: {clrscr(); for (lasterkari=0; lasterkari<15; lasterkari++) { printf ("\n%4i : %i puntu", lasterkari, puntuak [lasterkari]); } break; } case 3: { clrscr(); for (max= 0, maxkm=etapak[0][0]+etapak[1][0], lasterkari=1; lasterkari<10; lasterkari++) { if (maxkm < etapak[0][lasterkari] + etapak[1][lasterkari]) { maxkm = etapak[0][lasterkari] + etapak[1][lasterkari]; max = lasterkari; } } printf("\n\n\tEtapa luzeena %i-garrena da, %i kilometroekin", max, maxkm); break; } case 4: {clrscr(); do { printf("\n\n\t Ze datu ikusi nahi dituzu ?: 1- Kamioiak, 2- Kotxeak, 3-Motoak."); scanf("%d", &multzoa); }while (multzoa<1||multzoa>3); for (lasterkari = (multzoa -1) * 5; lasterkari < multzoa*5; lasterkari++) { printf("lasterkari %3i: %10d\n", lasterkari, puntuak[lasterkari]); } break; } } printf("\n\n\n\n\n\n\tSakatu tekla bat..."); getch(); }while (auk != 5); }