Cod sursa(job #356024)

Utilizator RalucaAndradaRaluca Andrada RalucaAndrada Data 13 octombrie 2009 09:28:38
Problema Fractii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.45 kb
# include <stdio.h>
# include <stdlib.h>
# include <math.h>

int Reductibila(int p, int q, int *r)
// r este parametru transmis prin referinta;
// functia va fi apelata cu Reductibila(p,q,&r);
{
    int m,i;
    
    if (p>q)
       m=p;
    else 
       m=q;
       
    for (i=2 ; i<m ; i++)
    {
         if (p%i==0 && q%i==0)
         {
              *r=i;
              return 0;
         }
    }
    return 1;
}

int main()
{
     FILE *f = fopen("fractii.in","rt");
     FILE *g = fopen("fractii.out","wt");
     char nume[21];
     int n,nr=1,r;
     int i,j;
     
     //printf("Introduceti numele fisierului: ");
     //scanf("%s",&nume);
     
     //f = fopen(nume,"rt");
     
     if (!f)
        printf("\nNo such file!");
     else
     {
         fscanf(f,"%i",&n);
         fclose(f);
         
         for (i = 1 ; i<=n ; i++)
         {
             for (j = 1 ; j<=n ; j++)
             {
                  if (i != j)
                  {
                      nr++;
                      printf("+%i/%i ",i,j);
                      
                      if ((i%j==0 || j%i==0) && (i!=1 && j!=1) || (Reductibila(i,j,&r)==0))
                      {
                           nr--;
                           printf("-%i/%i ",i,j);
                      }
                  }
             }
         }
         fprintf(g,"%i",nr);
     }
     
     fclose(f);
     fclose(g);
     return 0;
}