Guest User

Untitled

a guest
Dec 3rd, 2012
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.97 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <malloc.h>
  4.  
  5. void generator (int *polje, int broj) {
  6.     int i, j, k, a, *prvi, *drugi, *tab, check = 0;
  7.     srand((unsigned)time(NULL));
  8.  
  9.     prvi = (int *)malloc(broj/2*sizeof(int));
  10.     drugi = (int *)malloc(broj/2*sizeof(int));
  11.     tab = (int *)malloc(broj*broj*sizeof(int));
  12.  
  13.     for(i=0; i<broj; i++) {
  14.         for(j=0; j<broj; j++)
  15.             *(tab+i*broj+j) = 0;
  16.     }
  17.  
  18.     while(check == 0) {
  19.         for(i=0; i<(broj-1)*2; i++) {
  20.             printf("%d. KOLO:\n", i+1);
  21.             for(j=0; j<broj/2; j++) {
  22.                 a = j;
  23.                 do {
  24.                     prvi[j] = rand() % broj;
  25.                     drugi[j] = rand() % broj;
  26.                 } while(prvi[j] == drugi[j]);
  27.  
  28.                 for(k=0; k<j; k++) {
  29.                     if(prvi[k] == prvi[j] || drugi[k] == drugi[j] || prvi[k] == drugi[j]
  30.                        || drugi[k] == prvi[j] || *(tab+prvi[j]*broj+drugi[j]) == 1) {
  31.                         j--;
  32.                         break;
  33.                     }
  34.                 }
  35.  
  36.                 if(j==a) {
  37.                     printf("%d - %d\n", prvi[j], drugi[j]);
  38.                     *(tab+prvi[j]*broj+drugi[j]) = 1;
  39.                 }
  40.  
  41.                 check++;
  42.                 if(check > 1000) {
  43.                     for(i=0; i<broj; i++) {
  44.                         for(j=0; j<broj; j++)
  45.                             *(tab+i*broj+j) = 0;
  46.                     }
  47.                     check = 0;
  48.                     break;
  49.                 }
  50.             }
  51.             if(check == 0)
  52.                 break;
  53.             printf("\n");
  54.         }
  55.     }
  56. }
  57.  
  58. int main () {
  59.     FILE *f;
  60.     f = fopen("momcadi.txt", "r");
  61.  
  62.     int brojMomcadi;
  63.     int *polje, i;
  64.  
  65.     fscanf(f, "%d", &brojMomcadi);
  66.     polje = (int *)malloc(brojMomcadi*sizeof(int));
  67.  
  68.     for(i=0; i<brojMomcadi; i++)
  69.         polje[i] = i;
  70.  
  71.     generator(polje, brojMomcadi);
  72.  
  73.     fclose(f);
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment