Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.10 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. int *sqShuffle(int *p, int n);
  7.  
  8. int main(void) {
  9.     int n, *p, *rez, i;
  10.    
  11.     printf("n: ");
  12.     scanf("%d", &n);
  13.    
  14.     p = (int *)malloc(sizeof(int) * n);
  15.     if (!p) {
  16.         printf("Nema dovoljno memorije!\n");
  17.         exit(1);
  18.     }
  19.    
  20.     printf("Clanovi polja:\n");
  21.     for (i = 0; i < n; i++) {
  22.         scanf("%d", (p + i));
  23.     }
  24.    
  25.     rez = sqShuffle(p, n);
  26.    
  27.     for(i = 0; i < n; i++) {
  28.         printf("%d\n", *(rez + i));
  29.     }
  30.    
  31.     free(p);
  32.     free(rez);
  33.     return 0;
  34. }
  35.  
  36. int *sqShuffle(int *p, int n) {
  37.     int *rez, i, brojShuffleova, n1, n2, pom;
  38.     rez = (int *)malloc(sizeof(int) * n);
  39.     if(!rez) {
  40.         printf("Nema dovoljno memorije!\n");
  41.         exit(2);
  42.     }
  43.    
  44.     srand((unsigned)time(NULL));
  45.    
  46.     for (i = 0; i < n; i++) {
  47.         *(rez + i) = *(p + i) * *(p + i);
  48.     }
  49.    
  50.     /*broj shuffleova se moze proizvoljno mijenjati
  51.     ovisno o tome koliko 'dobar' zelimo shuffle*/
  52.     brojShuffleova = n*n;
  53.     for (i = 0; i < brojShuffleova; i++) {
  54.         n1 = rand()%n;
  55.         n2 = rand()%n;
  56.         pom = *(rez + n1);
  57.         *(rez + n1) = *(rez + n2);
  58.         *(rez + n2) = pom;
  59.     }
  60.    
  61.     return rez;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement