Pagini recente » Cod sursa (job #2500803) | Cod sursa (job #110730)
Cod sursa(job #110730)
#include<stdio.h>
FILE *f=fopen("ordine.in","r"), *g=fopen("ordine.out","w");
long int s,fr[30],j,ok;
char c[30],x;
void afisare( int i,long int fr[], long int &s);
void atribuire( char c[]);
int main()
{ atribuire(c);
while(!(feof(f))){ fscanf(f,"%c",&x);
for(j=1;j<=25;j++) if(x==c[j]){ fr[j]++; s++; break;}
}
afisare(1,fr,s);
fcloseall();
return 0;
}
void afisare( int i, long int fr[],long int &s)
{ if(s==0) return;
if(fr[i]){ fprintf(g,"%c",c[i]); fr[i]--; s--;}
else afisare(i++,fr,s);
ok=1;
for(j=1;j<i;j++) if(fr[j]) {ok=0; afisare(j,fr,s); break;}
if(ok) afisare(i++,fr,s);
}
void atribuire( char c[])
{ c[1]='a'; c[2]='b'; c[3]='c'; c[4]='d'; c[5]='e'; c[6]='f';
c[7]='g'; c[8]='h'; c[9]='i'; c[10]='j'; c[11]='k'; c[12]='l';
c[13]='m'; c[14]='n'; c[15]='o'; c[16]='p'; c[17]='q'; c[18]='r';
c[19]='s'; c[20]='t'; c[21]='u'; c[22]='v'; c[23]='w'; c[24]='x'; c[25]='y'; c[26]='z';
}