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: 5714
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 ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilitÓ) chiamava il gioco del Lotto Tassa sulla stupiditÓ.
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