Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.37 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. double atvalt(double x, char f)
  4. {
  5.     switch(f)
  6.     {
  7.         case 'k': { x*=1000; break; }
  8.         case 'm': { x=x/1000; break; }
  9.         case 'M': { x*=1000000; break; }
  10.     }    
  11.     return x;
  12. }
  13. double u_(double P, double I)
  14. {
  15.     double U;
  16.     U=P/I;
  17.     return U;
  18. }
  19. double p_(double U, double I)
  20. {
  21.     double P;
  22.     P=U*I;
  23.     return P;
  24. }
  25. double i_(double P, double U)
  26. {
  27.     double I;
  28.     I=P/U;
  29.     return I;
  30. }
  31. int main(int argc,char* argv[])
  32. {
  33.     FILE* f1;
  34.    
  35.     int n,t=0,problem=1;
  36.     double P=0,U=0,I=0;
  37.     char p,f,abada;
  38.    
  39.     f1=fopen(argv[1],"r");
  40.  
  41.     fscanf(f1,"%d",&n);
  42.     fscanf(f1,"%c",&abada);
  43.     fscanf(f1,"%c",&p);
  44.     while(t<n)
  45.     {
  46.        
  47.         if(p=='U' || p=='I' || p=='P' )
  48.         {
  49.             if((fscanf(f1,"%c",&f))=='=')
  50.             {
  51.                 switch(p)
  52.                 {
  53.                     case 'U':{ fscanf(f1,"%lf",&U); fscanf(f1,"%c",&f); U=atvalt(U,f); break;}
  54.                     case 'P':{ fscanf(f1,"%lf",&P); fscanf(f1,"%c",&f); P=atvalt(P,f); break;}
  55.                     case 'I':{ fscanf(f1,"%lf",&I); fscanf(f1,"%c",&f); I=atvalt(I,f); break;}
  56.                 }
  57.             }
  58.             else p=f;
  59.         }
  60.         if(p=='\n')
  61.         {  
  62.             printf("Problem #%d\n",problem); problem++;
  63.             if(U==0){ U=u_(P,I); P=0;I=0; printf("U=%.2fV\n\n",U); U=0; t++; goto get; }
  64.             if(P==0){ P=p_(U,I); U=0;I=0; printf("P=%.2fW\n\n",P); P=0; t++; goto get; }
  65.             if(I==0){ I=i_(P,U); P=0;U=0; printf("I=%.2fA\n\n",I); I=0; t++; goto get; }
  66.         }
  67.         get: fscanf(f1,"%c",&p);
  68.     }
  69.     fclose(f1);
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement