Kod: |
#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct{ char name[51]; int score; }team; int teamInd (char name[],team *list,int *n) { int i; for(i=0;i<(*n);i++) if(strcmp(name, list[i].name)==0)return i; list=(team*)realloc(list,((*n)+1)*sizeof(team)); strcpy(list[i].name,name); list[(*n)].score=0; (*n)++; return i; } void football(char iname[],char oname[]) { FILE *in,*out; int n=0,s1,s2,i1,i2; team *list; list=(team*)malloc(sizeof(team)); char t1[51],t2[51]; in=fopen(iname,"rt"); if(in==NULL){printf("GReska!");exit(-1);} out=fopen(oname,"wt"); if(out==NULL){printf("GReska!"); fclose(in); exit(-2);} int k=fscanf(in,"%[^:]:%[^=]=%d:%d ",t1,t2,&s1,&s2); if(k!=4){printf("Greska!");exit(-3);} while(k==4) { i1=teamInd(t1,list,&n); i2=teamInd(t2,list,&n); if(s1<s2) list[i2].score+=3; else if(s1>s2) list[i1].score+=3; else{ list[i1].score++; list[i2].score++;} } fclose(in); for(i1=0;i1<n;i1++) for(i2=i1+1;i2<n;i2++) if(list[i1].score<list[i2].score){ team tmp=list[i1]; list[i1]=list[i2]; list[i2]=tmp; } for(i1=0;i1<n;i1++) fprintf(out, "%d. %s (%d)\n",i1+1, list[i1].name,list[i1].score); free(list); fclose(out); } int main (void) { char ime1[20],ime2[20]; printf("Upisi ime ulazne datoteke:"); scanf("%s",ime1); printf("Upisi ime izlazne datoteke:"); scanf("%s",ime2); football(ime1,ime2); return 0; } |
output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.