Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [C]Segmentation Fault
Forum - C/C++ - [C]Segmentation Fault

Avatar
edo1493 (Normal User)
Newbie


Messaggi: 11
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 20:53
Venerdì, 02/04/2010
Sicuramente il problema è quel while, solo che non so perchè??
Codice sorgente - presumibilmente C++

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4.  
  5. void card(int wDeck[4][13], const char *wFace[], const char *wSuit[], int cost);
  6. void raise(int num);
  7.  
  8. int main () {
  9.  
  10. const char *suit[ 4 ] = { "Hearts", "Diamonds", "Clubs", "Spades" };
  11.  
  12. const char *face[ 13 ] = {"Ace", "Deuce", "Three", "Four",
  13.  
  14.         "Five", "Six", "Seven", "Eight",
  15.  
  16.         "Nine", "Ten", "Jack", "Queen", "King" };
  17.  
  18. int a = 1;
  19. int i, z;
  20. int choice;
  21. int valore = 0;
  22. int puntata = 0;
  23.  
  24. int deck [ 4 ][ 13 ] = { 0 };
  25.  
  26. for( i = 0 ; i < 4 ; i++ ) {
  27.  
  28.   for( z = 0 ; z < 13 ; z++ ) {
  29.  
  30.      deck[i][z] = a;
  31.  
  32.    if( z <= 8 ) {
  33.      a++;
  34.         }
  35.  
  36.       if( z == 12 ) {
  37.  
  38.           a = 1;
  39.  
  40.            }
  41.  
  42.  
  43. }
  44.  
  45. }
  46.  
  47. printf("Black Jack v0.1\n");
  48.  
  49.  
  50.  
  51. printf("Premi:\n 1. Per una carta\n 2. Per alzare la puntata\n 3. Per mostrare la puntata e le carte 4. Per uscire\n");
  52. scanf("%d",&choice);
  53.  
  54. while(choice != 4 ) {
  55. if(choice == 1) {
  56.  
  57.  card(deck,face,suit,valore);
  58.  
  59. }
  60.  
  61. else if (choice == 2) {
  62.  
  63. raise( puntata);
  64.  
  65. }
  66.  
  67. else if (choice == 3 ) {
  68.  
  69. printf("money: %d e carte: %d\n",puntata,valore);
  70.  
  71. }
  72.  
  73. printf("What do you want to do ?\n");
  74. scanf("%d", choice);
  75.  
  76. }
  77. printf("Program execution completed\n");
  78.  
  79. return 0;
  80.  
  81. }
  82.  
  83.  
  84. void card(int wDeck[4][13], const char *wFace[], const char *wSuit[], int cost) {
  85.  
  86.  
  87. int row;
  88.  
  89. int column;
  90.  
  91. int i,z;
  92.  
  93. srand( time( NULL ) );
  94.  
  95. row = rand() % 4;
  96.  
  97. column = rand() % 13;
  98.  
  99.  
  100. printf(" %5s of %-8s\n",wSuit[row], wFace[column]);
  101.  
  102. cost = cost + wDeck[row][column];
  103.  
  104. printf("%d",cost);
  105.  
  106. }
  107.  
  108. void raise( int num) {
  109.  
  110. int scommessa;
  111.  
  112.  
  113. printf(" Quanto vuoi scommettere?\n");
  114. scanf("%d",&scommessa);
  115.  
  116. num = num + scommessa;
  117.  
  118. }


PM Quote
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Segnala al moderatore
Postato alle 21:05
Venerdì, 02/04/2010
Testo quotato

Postato originariamente da edo1493:

Sicuramente il problema è quel while, solo che non so perchè??
Codice sorgente - presumibilmente C/C++

  1. ....
  2. printf("What do you want to do ?\n");
  3. scanf("%d", choice);
  4. ...



Credo che il problema sia li.
Ciao GuglielmoS.


La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
--Isaac Asimov
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:26
Venerdì, 02/04/2010


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
edo1493 (Normal User)
Newbie


Messaggi: 11
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 21:38
Venerdì, 02/04/2010
Ups...grazie

PM Quote