[ pelle07 @ 02.06.2009. 20:23 ] @
imam problem oko ovog zadatka,i bio bih vam veoma zahvalan ako bi mogli da mi pomognete... Ovo je moj pokusaj... Zadatak vam je dat dole... Code: #include <stdio.h> #include <string.h> typedef struct{char naziv_velicine[20],oznaka[2],jedinica[10],formula[5];}elektrotehnika; void zamena (char a[20],char b[20]) { char temp[20]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } main() { FILE *pok,*pok2,*pok3; int i=0,opcija,sortiranje,j=1; char kraj=' ',pretraga[20]; elektrotehnika velicina[200]; pok2=fopen("sortirano.txt","w"); pok3=fopen("resenja.txt","w"); do { printf("unesi naziv velicine\n"); scanf("%s",&velicina[i].naziv_velicine); printf("unesi oznaku te velicine\n"); scanf("%s",&velicina[i].oznaka); printf("unesi jedinicu te oznake\n"); scanf("%s",&velicina[i].jedinica); printf("unesi formulu po kojoj se izracunava ta velicina\n"); scanf("%s",&velicina[i].formula); pok=fopen("pomoc.txt","a"); fprintf(pok,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula); getchar(); printf("kraj d/n"); scanf("%c",&kraj); } while(kraj!='d'); printf("unesi opciju\n"); printf("1. Spisak formula\n"); printf("2. Pronadji formulu\n"); printf("3. Izlaz\n"); scanf("%d",&opcija); switch(opcija) { case 1: { printf("unesi kriterijum\n"); printf("1. naziv\n"); printf("2. oznaka\n"); printf("3. jedinica\n"); scanf("%d",&sortiranje); switch(sortiranje) { case 1: { while(fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula)!=EOF) { if(velicina[j].naziv_velicine<=velicina[i].naziv_velicine) { i++; j++; } else { zamena(velicina[i].naziv_velicine,velicina[j].naziv_velicine); zamena(velicina[i].oznaka,velicina[j].oznaka); zamena(velicina[i].jedinica,velicina[j].jedinica); zamena(velicina[i].formula,velicina[j].formula); } fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula); fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[j].naziv_velicine,velicina[j].oznaka,velicina[j].jedinica,velicina[j].formula); } } break; case 2: { while(fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula)!=EOF) { if(velicina[j].oznaka<=velicina[i].oznaka) { i++; j++; } else { zamena(velicina[i].naziv_velicine,velicina[j].naziv_velicine); zamena(velicina[i].oznaka,velicina[j].oznaka); zamena(velicina[i].jedinica,velicina[j].jedinica); zamena(velicina[i].formula,velicina[j].formula); } fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula); fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[j].naziv_velicine,velicina[j].oznaka,velicina[j].jedinica,velicina[j].formula); } } break; case 3: { while(fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula)!=EOF) { if(velicina[j].jedinica<=velicina[i].jedinica) { i++; j++; } else { zamena(velicina[i].naziv_velicine,velicina[j].naziv_velicine); zamena(velicina[i].oznaka,velicina[j].oznaka); zamena(velicina[i].jedinica,velicina[j].jedinica); zamena(velicina[i].formula,velicina[j].formula); } fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[i].naziv_velicine,velicina[i].oznaka,velicina[i].jedinica,velicina[i].formula); fprintf(pok2,"%s\t%s\t%s\t%s\t\n",velicina[j].naziv_velicine,velicina[j].oznaka,velicina[j].jedinica,velicina[j].formula); } } break; default:printf("pogresno\n"); } break; } case 2: { printf("unesi kriterijum\n"); printf("1. naziv\n"); printf("2. oznaka\n"); printf("3. jedinica\n"); scanf("%d",&sortiranje); switch(sortiranje) { case 1: { while(fscanf(pok,"%s",&velicina[i].naziv_velicine)!=EOF) { printf("unesi naziv koji trazis"); scanf("%s",&pretraga); if(strcmp(fscanf(pok,"%s",&velicina[i].naziv_velicine),pretraga)==1) { fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula); fprintf(pok3,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula); break; } else i++; } } break; case 2: { while(fscanf(pok,"%s",&velicina[i].naziv_velicine)!=EOF) { printf("unesi oznaku koju trazis"); scanf("%s",&pretraga); if(strcmp(fscanf(pok,"%s",&velicina[i].oznaka),pretraga)==1) { fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula); fprintf(pok3,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula); break; } else i++; } } break; case 3: { while(fscanf(pok,"%s",&velicina[i].naziv_velicine)!=EOF) { printf("unesi jedinicu koju trazis"); scanf("%s",&pretraga); if(strcmp(fscanf(pok,"%s",&velicina[i].jedinica),pretraga)==1) { fscanf(pok,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula); fprintf(pok3,"%s%s%s%s",&velicina[i].naziv_velicine,&velicina[i].oznaka,&velicina[i].jedinica,&velicina[i].formula); break; } else i++; } } break; default:printf("pogresno\n");break; } case 3:exit(1);break; default:printf("pogresno\n"); } system("PAUSE"); } } [Ovu poruku je menjao pelle07 dana 02.06.2009. u 21:34 GMT+1] [Ovu poruku je menjao X Files dana 03.06.2009. u 07:17 GMT+1] |