Advertisement
Guest User

Untitled

a guest
May 19th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.58 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. #include <time.h>
  5.  
  6. void showTable(int *tab, int size){
  7.     int i;
  8.     for(i=0;i<size;i++){
  9.         printf("%d ", tab[i]);
  10.     }
  11.     printf("\n");
  12. }
  13. void fillRandom(int *tab, int size){
  14.     int i;
  15.     for(i=0;i<size;i++){
  16.         tab[i] = rand()%10;
  17.     }
  18. }
  19. //zad1
  20. int* copyTable(int *tab_toCopy, int size){
  21.     int *tab,i;
  22.     tab = (int*)calloc(size,sizeof(int));
  23.     for(i=0;i<size;i++){
  24.         tab[i] = tab_toCopy[i];
  25.     }
  26.     return tab;
  27. }
  28. //zad2
  29. int* copyNonZero(int *tab_toCopy, int size, int *out_counter){
  30.     int *tab,i,j,counter = 0;
  31.     for(i=0;i<size;i++){
  32.         if(tab_toCopy[i] != 0 ){
  33.             counter ++;
  34.         }
  35.     }
  36.     *out_counter = counter;
  37.     tab = (int*)calloc(counter,sizeof(int));
  38.     j=0;
  39.     for(i=0;i<size;i++){
  40.         if(tab_toCopy[i] != 0){
  41.             tab[j] = tab_toCopy[i];
  42.             j++;
  43.         }
  44.     }
  45.     return tab;
  46. }
  47. //zad3
  48. void findMax(int *tab, int size, int *index, int* value){
  49.     int i,_index, _value;
  50.     _index = 0;
  51.     _value = tab[0];
  52.     for(i=1;i<size;i++){
  53.         if(tab[i]>_value){
  54.             _value = tab[i];
  55.             _index = i;
  56.         }
  57.     }
  58.     *index = _index;
  59.     *value = _value;
  60. }
  61. //zad4
  62. void findMin(int *tab, int size, int *index, int* value){
  63.     int i,_index, _value;
  64.     _index = 0;
  65.     _value = tab[0];
  66.     for(i=1;i<size;i++){
  67.         if(tab[i]<_value){
  68.             _value = tab[i];
  69.             _index = i;
  70.         }
  71.     }
  72.     *index = _index;
  73.     *value = _value;
  74. }
  75. //zad5
  76. void findMinMax(int *tab, int size, int *indexMin, int* valueMin,int *indexMax, int* valueMax, int* diff){
  77.    
  78.     findMax(tab, size, indexMax,valueMax);
  79.     findMin(tab, size, indexMin, valueMin);
  80.     *diff = *valueMax - *valueMin;
  81. }
  82.  
  83. int **allocate2D(int x, int y){
  84.     int **tab,i;
  85.     tab = (int**)calloc(x,sizeof(int*));
  86.     for(i =0;i<x;i++){
  87.         tab[i] = (int*)calloc(y,sizeof(int));
  88.     }
  89.     return tab;
  90. }
  91. void populate2D(int **tab, int x, int y){
  92.     int i,j;
  93.     for(i=0;i<x;i++){
  94.         for(j=0;j<y;j++){
  95.             scanf("%d", &tab[i][j]);
  96.         }
  97.     }
  98. }
  99. void show2D(int **tab, int x, int y){
  100.     int i,j;
  101.     for(i=0;i<x;i++){
  102.         for(j=0;j<y;j++){
  103.             printf("%d ", tab[i][j]);
  104.         }
  105.         printf("\n");
  106.     }
  107. }
  108. //zad 6 -> sami
  109. //zad7
  110. void change(int *var1, int *var2){
  111.     int temp;
  112.     temp = *var1;
  113.     *var1 = *var2;
  114.     *var2 = temp;
  115. }
  116. //zad 8
  117. void sums(int *tab, int size, int *sum1, int *sum2){
  118.     *sum1 = 0; //dla wartosci
  119.     *sum2 = 0; //dla wartosci bezwzglednych
  120.     int i =0;
  121.     for(i;i<size;i++){
  122.         sum1 += tab[i];
  123.        
  124.         if(tab[i]<0){
  125.             *sum2 += -1*tab[i];
  126.         }
  127.         else{
  128.             *sum2 += tab[i];
  129.             //sum2 = sum2 + tab[i];
  130.         }
  131.     }
  132. }
  133. // zad 9 -> sami
  134. //zad10
  135. void sums1(int *tab, int size, int *sum1, int *sum2){
  136.     *sum1 = 0; //dla wartosci parzystych
  137.     *sum2 = 0; //dla wartosci nieparzystych
  138.     int i =0;
  139.     for(i;i<size;i++){
  140.         if(tab[i]%2 == 0){
  141.             *sum1 += tab[i];
  142.         }
  143.         if(tab[i]%2 != 0){
  144.             *sum2 += tab[i];
  145.         }
  146.     }
  147. }
  148.  
  149. int main() {
  150.     srand(time(NULL));
  151.     //zad1
  152.     int *tab, *tab1, *tab2, size = 10;
  153.     tab = (int*)calloc(size,sizeof(int));
  154.     tab1 = copyTable(tab,size);
  155.     tab2 = copyTable(tab,size);
  156.     //zad2
  157.     int *tab3, *tab4, counter=0;
  158.     tab3 = (int*)calloc(size,sizeof(int));
  159.     fillRandom(tab3,size);
  160.     tab4 = copyNonZero(tab3,size,&counter);
  161.     //zad3
  162.     int maxValue, maxIndex;
  163.     findMax(tab3,size,&maxIndex, &maxValue);
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement