Sei sulla pagina 1di 2

#include <cstdlib> #include <time.

h> #include <iostream> #define PLITHOS 10 #define MHKOSLEXIS 10 using namespace std; char pinakas[PLITHOS][MHKOSLEXIS], pinakas_temp[MHKOSLEXIS],lookfor[MHKOSLEXIS]; int i,j,po,ko,mt,k; int typose_pinaka() { /*typwse ton pinaka gia optiko elegxo*/ for (i=0; i < PLITHOS; i++) { printf("\n%s",pinakas[i]); } } int main(int argc, char *argv[]) { /*gemise me lexeis apo plhktrologio apo 1 ews 10*/ for (i=0; i<PLITHOS; i++) { printf("\nDOSE LEXI %d : ",i); scanf("%s",pinakas[i]); /*elegxos an hdh yparxei h lexi*/ for(j=0; j < i; j++) { if (strcmp(pinakas[j],pinakas[i]) == 0) { i--; break; } } } /*typwse ton pinaka gia optiko elegxo*/ printf("\nO ARXIKOS PINAKAS\n"); typose_pinaka(); /*taxinomise me fysalida*/ for (i=0; i < PLITHOS; i++) { for(j=0; j < PLITHOS-i-1; j++)

{ if (strcmp(pinakas[j],pinakas[j+1]) > 0) { strcpy(pinakas_temp,pinakas[j]); strcpy(pinakas[j], pinakas[j+1]); strcpy(pinakas[j+1],pinakas_temp); } } } /*typwse ton pinaka gia optiko elegxo*/ printf("\nTAXINOMIMENOS\n"); typose_pinaka(); /*pare enan arithmo apo ton xrhsth kai psaxe me dyadikh anazhthsh*/ printf("\nDWSTE MIA LEXH\n"); scanf("%s",lookfor); po=PLITHOS; //PANO ORIO ko=0; //KATO ORIO while(po>=ko) { mt=(po+ko)/2; //MESI THESI k = strcmp(pinakas[mt], lookfor); if(k==0) { printf("\nH LEXH %s VRETHIKE STH THESI %d\n",lookfor,mt+1); break; } else if (k > 0) { po = mt-1; } else { ko=mt+1; } } if (po < ko) printf("\nH LEXH %s DEN VRETHIKE\n",lookfor); system("PAUSE"); return EXIT_SUCCESS; }

Potrebbero piacerti anche