Advertisement
m4ly

Lab3_p2 | Dynamiczna tablica | malloc

Mar 23rd, 2013
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.67 KB | None | 0 0
  1. /*
  2. Auhtor: Dawid Mocek
  3.  
  4. Zadanie 5
  5. Proszę napisać funkcję, która tworzy tablicę jednowymiarową o rozmiarze zdefiniowanym przez parametr funkcji i wypełnia ją losowymi wartościami.
  6.  
  7. Zadanie 6
  8. Proszę napisać funkcję, która tworzy tablicę jednowymiarową o rozmiarze zdefiniowanym przez parametr funkcji i wypełnia ją losowymi literami.
  9.  
  10. Zadanie 7
  11. Proszę napisać funkcję, która jako parametry dostaje dwie tablice, a w wyniku działania zwraca nową tablicę, która w kolejnych polach zawiera sumę elementów z danych pól tablic podanych na wejście.
  12.  
  13. Zadanie 8
  14. Napisz funkcję, która jako parametry wejściowe dostaje dwie tablicę. Wynikiem działania funkcji jest tablica wyjściowa, która jest sklejeniem pierwszej tablicy z drugą.*/
  15.  
  16. #include "stdio.h"
  17. #include "stdlib.h"
  18. #include "string.h"
  19.  
  20. void createArray(int * tab, int size)
  21. {
  22.  
  23.     *tab = tab[size];
  24.     for(int c = 0; c < size; c++) {
  25.             tab[c] = (int)rand();
  26.     }
  27.  
  28. }
  29. void printArray(int * tab, int size)
  30. {
  31.  
  32. }
  33.  
  34. struct person
  35. {
  36.     char name[255];
  37.     char surname[255];
  38.     unsigned int number;
  39. }osoba;
  40.  
  41. int rnd(int min, int max)
  42. {
  43.     int tmp;
  44.     if (max>=min)
  45.         max-= min;
  46.     else
  47.     {
  48.         tmp= min - max;
  49.         min= max;
  50.         max= tmp;
  51.     }
  52.     return max ? (rand() % max + min) : min;
  53. }
  54.  
  55.  
  56. int compare_values (const void *a, const void *b) {
  57.   const int *int_a = (const int *) a;
  58.   const int *int_b = (const int *) b;
  59.  
  60.   return (*int_a - *int_b);
  61. }
  62.  
  63.  
  64. void sort(int tab[], int size)
  65. {
  66.         int i, j, temp;
  67.         for (i = 0; i<size; i++)
  68.         {
  69.                 for (j=0; j<size-1-i; j++)
  70.                 {
  71.                         if (tab[j] > tab[j+1])
  72.                         {
  73.                                 temp = tab[j+1];
  74.                                 tab[j+1] = tab[j];
  75.                                 tab[j] = temp;
  76.                         }
  77.                 }
  78.         }
  79. }
  80. int main()
  81. {
  82.    
  83.  /*
  84.  Zaalokuj tablicę dynamiczną typu int (nazwa tabA) wypełnij losowymi wartościami,
  85.  stwórz dynamiczną tablicę wskaźników (nazwa tabB) ustaw wskaźniki w tabB w taki sposób,
  86.  aby koleno wskazywane elementy przez tabB były posortowaną wersją tabA
  87.  */
  88.  
  89.  int c = 0;
  90.  int size = 10;
  91.  int *tabA;
  92.  int **tabB;
  93.  
  94.  tabA = (int*)malloc(size * sizeof(int));
  95.  tabB = (int**)malloc(size * sizeof(int *));
  96.  
  97. // wypełniamy tablice
  98.  for( c = 0; c < size; c++)
  99.  {
  100.     tabA[c] = rnd(1,100);
  101.  }
  102.  
  103. // kopiowanie tablicy  
  104. for(c = 0; c < size; c++)
  105. {  
  106.      tabB[c] = &tabA[c];
  107. }
  108.  
  109. //sorotwanie
  110. qsort(*tabB, size, sizeof(int *), compare_values);
  111.  
  112. for(c = 0; c < size; c++ )
  113. {
  114.     printf("%d\n", *tabB[c]);
  115. }
  116.  
  117.  
  118. getchar();
  119. return 0;
  120.  
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement