Guest User

Untitled

a guest
Jan 11th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.63 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void f (char, float, float, float *, float *);
  4.  
  5. float cpwr (float, float);
  6.  
  7. void srt (float[][4], int);
  8.  
  9. int
  10. main ()
  11. {
  12.  
  13. char kind;
  14.  
  15. int i = 0, j, n = 0;
  16.  
  17. float x[100][4], res, vol, ia, pwr, am, sm = 0, avg;
  18.  
  19. FILE * in;
  20.  
  21. in = fopen ("Electric.txt", "r");
  22.  
  23. while (fscanf (in, " %c%f%f", &kind, &am, &ia) != EOF)
  24.    
  25.     {
  26.      
  27. f (kind, am, ia, &res, &vol);
  28.      
  29. pwr = cpwr (vol, ia);
  30.      
  31. n++;
  32.      
  33. x[i][0] = pwr;
  34.      
  35. x[i][1] = ia;
  36.      
  37. x[i][2] = vol;
  38.      
  39. x[i][3] = res;
  40.      
  41. sm += x[i][0];
  42.      
  43. i++;
  44.    
  45. }
  46.  
  47. srt (x, n);
  48.  
  49. avg = sm / n;
  50.  
  51. printf ("Average pwr=%4.4f\n", avg);
  52.  
  53. for (i = 0; i < n; i++)
  54.    
  55.     {
  56.      
  57. printf ("Device#%d\tp=%4.4f\tia=%4.4f\tVolt=%4.4f\tResistance=%4.4f\n",
  58.            i + 1, x[i][0], x[i][1], x[i][2], x[i][3]);
  59.    
  60. }
  61.  
  62. fclose (in);
  63.  
  64. return 0;
  65.  
  66. }
  67.  
  68.  
  69. float
  70. cpwr (float v, float c)
  71. {
  72.  
  73. float pwr;
  74.  
  75. pwr = v * c;
  76.  
  77. return pwr;
  78.  
  79. }
  80.  
  81.  
  82. void
  83. srt (float p[][4], int s)
  84. {
  85.  
  86. int i, j, k;
  87.  
  88. float temp;
  89.  
  90. for (i = 0; i < s; i++)
  91.    
  92.     {
  93.      
  94. for (j = i + 1; j < s; j++)
  95.    
  96.     {
  97.      
  98. if (p[i][0] > p[j][0])
  99.        
  100.         {
  101.          
  102. for (k = 0; k < 4; k++)
  103.        
  104.         {
  105.          
  106. temp = p[i][k];
  107.          
  108. p[i][k] = p[j][k];
  109.          
  110. p[j][k] = temp;
  111.        
  112. }
  113.        
  114. }
  115.    
  116. }
  117.    
  118. }
  119.  
  120.  
  121. }
  122.  
  123.  
  124. void
  125. f (char x, float y, float z, float *r, float *v)
  126. {
  127.  
  128. switch (x)
  129.    
  130.     {
  131.    
  132. case 'V':
  133.      
  134. *r = y / z;
  135.      
  136. *v = y;
  137.      
  138. break;
  139.    
  140. case 'R':
  141.      
  142. *v = y * z;
  143.      
  144. *r = y;
  145.      
  146. break;
  147.    
  148. }
  149.  
  150. }
Advertisement
Add Comment
Please, Sign In to add comment