Advertisement
lukasd

binarne przykład

Feb 15th, 2018
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.32 KB | None | 0 0
  1. typedef struct
  2. {
  3.     int numer;
  4.     char nazwa[50];
  5.     float promien;
  6. }Planeta;
  7. Planeta func(Planeta *arr, int size)
  8. {
  9.  
  10.     float a;
  11.     Planeta b;
  12.     float *v = (float*)malloc(sizeof(float)*size);
  13.     float pi = 3.14;
  14.     for (int i = 0; i < size; i++)
  15.     {
  16.         if (arr[i].numer % 2 == 0)
  17.         {
  18.             v[i] = (4 / 3)*pi*pow(arr[i].promien, 3);
  19.         }
  20.         else
  21.         {
  22.             v[i] = 0.9*((4 / 3)*pi*pow(arr[i].promien, 3));
  23.         }
  24.     }
  25.     for (int i = 0; i < size - 1; i++)
  26.     {
  27.         for (int j = 0; j < size - 1; j++)
  28.         {
  29.             if (v[j]<v[j + 1])
  30.             {
  31.                 a = v[j + 1];
  32.                 v[j + 1] = v[j];
  33.                 v[j] = a;
  34.                 b = arr[j + 1];
  35.                 arr[j + 1] = arr[j];
  36.                 arr[j] = b;
  37.             }
  38.         }
  39.     }
  40.     return arr[0];
  41. }
  42. void kolos1()
  43. {
  44.     Planeta arr[3];
  45.     arr[0].numer = 1;
  46.     strcpy(arr[0].nazwa, "Kolos wielki");
  47.     arr[0].promien = 8000;
  48.     arr[1].numer = 2;
  49.     strcpy(arr[1].nazwa, "duza planeta");
  50.     arr[1].promien = 5000;
  51.     arr[2].numer = 3;
  52.     strcpy(arr[2].nazwa, "lodowy gigant");
  53.     arr[2].promien = 2000;
  54.  
  55.     Planeta temp = func(arr, 3);
  56.  
  57.     //printf("%d %s %f", temp.numer, temp.nazwa, temp.promien);
  58.  
  59.     FILE *fp = fopen("testPlanet.txt", "wb");
  60.     fwrite(arr, sizeof(Planeta), 3, fp);
  61.     fclose(fp);
  62.  
  63.     FILE *fp2 = fopen("testPlanet.txt", "rb");
  64.     Planeta temp2;
  65.     fread(&temp2, sizeof(Planeta), 1, fp2);
  66.  
  67.     fclose(fp2);
  68.     printf("%d %s %f", temp2.numer, temp2.nazwa, temp2.promien);
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement