Advertisement
Whoneon

Legilimens Mk.2

Nov 14th, 2019
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.29 KB | None | 0 0
  1. /*
  2.  * Author: M05000889
  3.  * Come funziona: Pensa ad un numero, e lasciati guidare dalle mie domande.
  4.  * Language:  C
  5.  */
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <unistd.h>
  9.  
  10. #define DICOTOMIA 2
  11. #define MAX 65535
  12. #define ZZZ 4
  13. #define ZERO 0
  14.  
  15. void main(void)
  16.    {
  17.       unsigned inf, sup, avg;
  18.       char ans;
  19.       system("clear");
  20.       printf("\n***********************************************\n*          IL GRANDE MAGO ANTONIO             *\n***********************************************\nCiao. Oggi proverò a leggere la tua mente.\n");
  21.       //sleep(DICOTOMIA); //Togli il commento appena finisci il debug per dare un'aria di mistero al programma...
  22. iniziamo:
  23.       printf("Scegli un numero intero positivo minore di %d... Fatto? Benissimo!\n",MAX);
  24.       //sleep(ZZZ); //Togli il commento appena finisci il debug per dare un'aria di mistero al programma...
  25.       printf("Ora dimmi un intervallo in cui il tuo numero è compreso. \nOvviamente il tuo numero non deve trovarsi all'estremo dell'intervallo...\nEstremo inferiore:");
  26.             scanf("%u",&inf); //conservo il valore
  27.  
  28.       printf("\nEstremo superiore:");
  29.             scanf("%u",&sup); //manco a dirlo...
  30.       if (inf>sup)
  31.     {
  32.         printf("Attenzione, hai invertito l'ordine degli estremi: in questo modo mi fai solo confondere :(\n");
  33.         goto iniziamo;
  34.     }
  35.      else if (inf==sup)
  36.     {
  37.         printf("Eheh, il tuo numero è per forza %u, non è così? ;)\n",inf);
  38.         exit(1);
  39.     }
  40.      else if (inf<ZERO || sup<ZERO)
  41.     {
  42.         printf("Oh no, ti prego niente numeri negativi! :(\n");
  43.         exit(1);
  44.     }
  45.      else{
  46.     for ( ; ; )
  47.   {
  48.             avg = (sup + inf) / DICOTOMIA;
  49.             printf("\nStavi per caso pensando a %u? (S/N) \n >> ",avg);
  50.                 scanf(" %c", &ans); //aspetto la risposta
  51.        switch (ans){
  52.     case 's':; case 'S':
  53.             printf("\nLo so, sono il migliore!\n");
  54.             exit(1);
  55.     case 'n':; case 'N':
  56.             printf("\nMmmm... Ottimo. Il tuo numero è più grande di %u? (S/N) \n >> ",avg);
  57.             scanf(" %c", &ans);
  58.        switch (ans){
  59.     case 's':; case 'S':
  60.             inf=avg;
  61.             break;
  62.     case 'n':; case 'N':
  63.             sup=avg;
  64.             inf=inf;
  65.             break;
  66.      }
  67.   }
  68. }
  69. }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement