Facebook
From trybunyrator, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 82
  1. //Wykonał W.T aka Trybunyrator wersja 3.1
  2. #include <stdio.h>
  3. #include <locale.h>
  4. int main(void)
  5. {
  6.         setlocale(LC_CTYPE, "Polish");
  7.         int a,b,wylosowana_liczba, max_losowan, i, j, powtorzenie;
  8.         srand( time( NULL ) );
  9.         printf("Program losujący z przedziału <a;b> z wyłączeniem wylosowanych liczb (a<b && i że to jest przedział to a!=b)");
  10.         dladebili: // program tylko dla liczb
  11.         printf("\n Podaj a: ");
  12.         scanf("%d", &a);
  13.         printf("Podaj b: ");
  14.         scanf("%d", &b);
  15.         if (  a==b || (a<0 & b<0 && a-b<0) ) goto dladebili;
  16.         if(a>0 && b>0 || (a<0 && b>0) ) max_losowan = abs(b-a+1);
  17.         if(a<0 && b<0)  max_losowan = abs(b-a-1);
  18.         int wylosowane_liczby[max_losowan+1];
  19.         for(i=0; i<max_losowan; i++)
  20.         {
  21.                 losowanie:
  22.                 if(a>0 && b>0 || (a<0 && b>0) ) wylosowana_liczba = rand()%max_losowan + a;
  23.                 if(a<0 && b<0) wylosowana_liczba = (rand()%max_losowan - a)*-1;
  24.                 for(j=0; j<max_losowan; j++)
  25.                 {
  26.                         if( wylosowane_liczby[j] == wylosowana_liczba) goto losowanie;
  27.                 }
  28.                 wylosowane_liczby[i]=wylosowana_liczba;
  29.                 printf("\n Losowanie nr %d: %d",i+1, wylosowana_liczba);
  30.         }
  31.         // Sprawdzanie poprawności
  32.         printf("\n");
  33.         for(i=0; i<max_losowan; i++)
  34.         printf("%d,", wylosowane_liczby[i]);
  35. }