Advertisement
Guest User

Generatore di numeri casuali

a guest
Jul 1st, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.67 KB | None | 0 0
  1. /*
  2. Coded by Hashbang AKA Flogisto
  3.  
  4. Questo è un generatore di numeri realmente casuali (non pseudo-casuali).
  5. La casualità dei numeri generati dipende da quando l'utente decide, arbitrariamente, di fermare il ciclo while
  6. e dalla sua incapacità di poter prevedere quale valore conterrà la variabile incrementata.
  7. */
  8. #include <stdio.h>
  9. #include <unistd.h>
  10. #include <stdlib.h>
  11. #include <signal.h>
  12.  
  13. void funzione(){
  14.     return ;
  15. }
  16.  
  17. int main(){
  18.     long long int i, lim, inf, sup, var;
  19.     char file[] = "Numeri casuali.txt";
  20.     signal(SIGINT, funzione);
  21.  
  22.     printf("Inserisci l'estremo inferiore dell'intervallo: ");
  23.     scanf("%lld", &inf);
  24.     printf("\nInserisci l'estremo superiore dell'intervallo: ");
  25.     scanf("%lld", &sup);
  26.     printf("\nInserisci il numero di valori aleatori che si vogliono ottenere: ");
  27.     scanf("%lld", &lim);
  28.     if(lim <= 0){
  29.         printf("\nIl numero di valori non puo' essere <= di 0!\n");
  30.         printf("\nPremi INVIO per chiudere il programma...");
  31.         fflush(stdin);
  32.         getchar();
  33.         exit(1);
  34.     }
  35.  
  36.     printf("\nPremi INVIO per iniziare il conteggio...");
  37.     fflush(stdin);
  38.     getchar();
  39.  
  40.     for(i=1; i<=lim; i++){
  41.         printf("\n\nCiclo numero %lld inizializzato;\npremi ctrl-c per fermarlo quando vuoi...", i);
  42.  
  43.         // Core dell'algoritmo
  44.         while(signal(SIGINT, funzione)){
  45.             var = ++var;
  46.             if (var > sup){
  47.                 var = inf;
  48.             }
  49.         }
  50.  
  51.         FILE *pf;
  52.         pf = fopen(file, "a");
  53.         if(pf == NULL){
  54.             perror("\nError");
  55.             fflush(stdin);
  56.             getchar();
  57.             exit(1);
  58.         }
  59.         fprintf(pf, "%lld\n", var);
  60.         fflush(pf);
  61.         fclose(pf);
  62.     }
  63.  
  64.     printf("\n\n\nFine. Valori salvati sul file %s\n\nPremi INVIO per chiudere il programma...", file);
  65.     fflush(stdin);
  66.     getchar();
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement