Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.46 KB | None | 0 0
  1. struct punkt
  2. {
  3.     int x;
  4.     int y
  5.     struct punkt *next;
  6. };
  7.  
  8. int tabtab; //zmienna globalna do przekazania rozmiaru tablicy do maina
  9.  
  10.  
  11. struct punkt *sort(struct punkt *temp,int rozmiar)
  12. {
  13.     int i, a=0, b=0, licznik=0,c=0, k=0;
  14.     for(i=0; i<rozmiar; i++) //liczenie pola
  15.     {
  16.         a = temp[i].a*temp[i].b;
  17.         b = b + a;
  18.     }
  19.     c = b/rozmiar; //srednie pole
  20.    
  21.     for(i=0; i<rozmiar; i++) //zliczanie ilosci elementow tablicy spelniajacych warunek
  22.     {
  23.         a = temp[i].a*temp[i].b;
  24.         if(a>c)
  25.         {
  26.             licznik++;
  27.         }
  28.     }
  29.    
  30.     struct punkt *nowatablica = (struct punkt*)malloc(licznik*sizeof(struct punkt)); //utworzenie nowej tablicy
  31.    
  32.     for(i=0; i<rozmiar; i++) //wypelnienie nowej tablicy
  33.     {
  34.         a = temp[i].a*temp[i].b;
  35.         if(a>c)
  36.         {
  37.             nowatablica[k].a = temp[i].a;
  38.             nowatablica[k].b = temp[i].b;
  39.             k++
  40.         }
  41.     }
  42.     tabtab = k; //przypisanie wartosci do zmiennej globalenj
  43.     return nowatablica; //zwrocenie nowej tablicy do maina
  44. }
  45.  
  46. ________________________________________________________________________________________________________________________________
  47.  
  48. struct punkt
  49. {
  50.     float x;
  51.     float y
  52.     struct punkt *next;
  53. };
  54.  
  55.  
  56.  
  57. struct punkt *sort(struct punkt *head1)
  58. {
  59.     struct punkt *head = head1; //przekazanie adresu do talblicy an ktorej pracujemy
  60.     int a = 0, b = 0;
  61.     float c;
  62.     while(head->next != NULL) //obliczanie sumy wszystkich pol
  63.     {
  64.         a = head->next->x * head->next->y;
  65.         b = b + a;
  66.         licznik++;
  67.         head = head->next;
  68.     }
  69.    
  70.     c = b/licznik; //srednia pol
  71.    
  72.     head = head1; //przywrocenie adresu heada
  73.    
  74.     struct punkt *temp = (struct punkt*)malloc(sizeof(struct punkt)); //utworzenie nowej tablicy z polami ktore spelniaja warunek z ifa
  75.     temp->next = NULL;
  76.    
  77.     while(head->next != NULL) //przypisanie do nowej tablicy pol spelniajacych warunek
  78.     {
  79.         a = head->next->x * head->next->y;
  80.         if(a>c)
  81.         {
  82.             struct punkt *element = (struct punkt*)malloc(sizeof(struct punkt)); //element stworzoyn do przechowania pola spelniajacego warunek
  83.             element->x = head->next->x;
  84.             element->y = head->next->y;
  85.             element->next = NULL;
  86.             if(temp->next!=NULL) //przypisanie elementow do nowej tablicy *temp
  87.             {
  88.                 element->next = temp->next;
  89.                 temp->next = element;
  90.             }
  91.             else
  92.             {
  93.                 temp->next = element;
  94.             }
  95.            
  96.         }
  97.         head = head->nex;
  98.     }
  99.     return temp; //zwrocenie tablicy do maina
  100. }
  101.  
  102. ________________________________________________________________________________________________________________________________
  103.  
  104. // kod kamila na pliki, czy "while(bufor[0]!=EOF)" jest poprawny?
  105. void zapis_do_plikow (char *sciezka)
  106. {
  107.     FILE *plik;
  108.     FILE *plik_male_litery;
  109.     FILE *plik_duze_litery;
  110.     plik=fopen;
  111.     plik_male_litery=fopen;
  112.     plik_duze_litery=fopen;
  113.     char bufor[61];
  114.    
  115.  
  116.     while(bufor[0]!=EOF)
  117.     {
  118.         fgets(bufor, 61, (FILE *)plik);
  119.         if(bufor[0]>'a' && bufor[0]<'z'){
  120.             fprintf(plik_male_litery, bufor);
  121.         }
  122.         if(bufor[0]>'A' && bufor[0]<'Z'){
  123.             fprintf(plik_duze_litery, bufor);
  124.         }
  125.     }
  126.     fclose(plik);
  127.     fclose(plik_duze_litery);
  128.     fclose(plik_male_litery);
  129.    
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement