ifinox

15.12 PodstawyProgramowania

Dec 15th, 2017
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. float F(float x)
  5. {
  6.     return x*x*x;
  7. }
  8.  
  9. void g(float a, float b, float k, float * T, float (*func)(float liczba))
  10. {
  11.     int i;
  12.     float x;
  13.     for(x = a, i=0; x <= b; x+=k, i++)
  14.         T[i] = func(x);
  15. }
  16.  
  17. void func(int * tab, int n, int * _unikalne, int ** _wystapieniaT, int ** _unikalneT)
  18. {
  19.     int * unikalne = malloc(sizeof(int) * n);
  20.     int * wystapienia = malloc(sizeof(int) * n);
  21.     int i, j, k;
  22.     int iloscUnikalnych = 0;
  23.     int czyUnikalna = 0;
  24.     for(i = 0; i<n; i++)
  25.     {
  26.         czyUnikalna = 1;
  27.         for(j = 0; j<iloscUnikalnych; j++)
  28.             if (unikalne[j] == tab[i])
  29.                 czyUnikalna = 0;
  30.         if (czyUnikalna == 1)
  31.         {
  32.             unikalne[j] = tab[i];
  33.             int iloscWystapien = 0;
  34.             for(k = 0; k<n; k++)
  35.                 if (tab[k] == unikalne[j])
  36.                     iloscWystapien++;
  37.             wystapienia[j] = iloscWystapien;
  38.             iloscUnikalnych++;
  39.         }
  40.     }
  41.     unikalne = realloc(unikalne, sizeof(int) * iloscUnikalnych);
  42.     wystapienia = realloc(wystapienia, sizeof(int) * iloscUnikalnych);
  43.  
  44.     *_unikalne = iloscUnikalnych;
  45.     *_unikalneT = unikalne;
  46.     *_wystapieniaT = wystapienia;
  47.  
  48. }
  49.  
  50. int main()
  51. {
  52.     int * table;
  53.     int n;
  54.     printf("Podaj rozmiar: ");
  55.     scanf("%d", &n);
  56.     table = malloc(sizeof(int) * n);
  57.  
  58.     int i;
  59.     int val;
  60.     for(i = 0; i<n; i++)
  61.     {
  62.         scanf("%d", &val);
  63.         table[i] = val;
  64.     }
  65.     int * unikalne;
  66.     int * wystapienia;
  67.     func(table, n, &n, &wystapienia, &unikalne);
  68.     for(i = 0; i<n; i++)
  69.         printf("%d wystepuje %d razy\n", unikalne[i], wystapienia[i]);
  70. }
  71.  
  72. /*
  73. int main()
  74. {
  75.     float x,y,z;
  76.     printf("Podaj od ilu: ");
  77.     scanf("%f", &x);
  78.     printf("Podaj do ilu: ");
  79.     scanf("%f", &y);
  80.     printf("Podaj krok: ");
  81.     scanf("%f", &z);
  82.     int ileWyrazow = (y-x + 1)*(1/z);
  83.     float * tab = malloc(sizeof(float) * ileWyrazow);
  84.  
  85.     printf("Wyrazy: %d\n", ileWyrazow);
  86.     g(x,y,z, tab, F);
  87.     int j;
  88.     float i;
  89.     for(j = 0, i = x; i <= y; i+=z, j++)
  90.         printf("%f - %f\n", i, tab[j]);
  91.     system("PAUSE");
  92.     return 0;
  93. }
  94. */
Advertisement
Add Comment
Please, Sign In to add comment