[ 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]
[ Wajda.W @ 05.06.2009. 18:40 ] @
A sta se trazi od zadatka, sta ti ne ide?, daj malo vise informacija...
[ Struja01 @ 06.06.2009. 00:45 ] @
Iskompajlirao sam ti code, imas par upozorenja (warings) probaj da eliminises ta upozorenja.
Sigurno bi ti vise pomogli kada bi znali sta je cilj zadatka!?
[ pelle07 @ 06.06.2009. 13:11 ] @
Pa cilj je da se u opciji 1 podaci iz jedne datoteke sortiraju(po nazivu npr...) i da se zatim upisu u drugu datoteku...A u opciji 2 da se izvrsi pretraga...a ispod koda je zadatak sa primerom kako bi to trebalo da izgleda,ako vam nesto znaci...