Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Non legge le variabili letterali--HELP
Forum - C/C++ - Non legge le variabili letterali--HELP

Avatar
alexitaly92 (Normal User)
Newbie


Messaggi: 2
Iscritto: 26/10/2008

Segnala al moderatore
Postato alle 0:02
Lunedì, 27/10/2008
salve devo creare un programmino che calcola il punteggio di una partita di calciobalilla in cui si possano inserire i nomi di giocatori e inserendo solo il punteggio della prima squadra aggiorna la classifica e tutto...
Il problema è che quando gli chiedo di leggere le variabili letterali (quelle con il char) facendo partire il programma non funzionano
allego il file così ci date un'occhiata... (non è finito)
Essendo io un programmatore "iniziato" non ditemi che ho sbagliato a mettere tutti quegli if...
Codice sorgente - presumibilmente C/C++

  1. #include<stdio.h>
  2. main()
  3. {
  4.  int a,b,c,d,pa,pb,pc,pd,t,cont,part;
  5.  
  6.  char x,y,f,e;
  7.  
  8.  printf("\t\tTool per calcolare punteggio giocatori di un torneo:\n");
  9.  printf("\nDigitare 4 per tornao a 4.\n");
  10.  printf("Digitare 5 per torneo a 5.\n");
  11.  printf("Digitare 6 per torneo a 6.\n");
  12.  printf("Digitare 7 per tornao a 7.\n");
  13.  printf("Digitare 8 per torneo a 8.\n");
  14.  printf("Digitare 0 per uscire.\n");
  15.  scanf("%d",&t);
  16.  cont=1;
  17.  pa=0;
  18.  pb=0;
  19.  pc=0;
  20.  pd=0;
  21.  while(t>0)
  22.  {
  23.   if(t==4)
  24.   {
  25.    part=12;
  26.    while(cont<part)
  27.    {
  28.     scanf("%c",&x);
  29.     printf("\nPartita nr %d",cont);
  30.     printf("\nPunteggio prima squadra:");
  31.     scanf("%d",&a);
  32.     b=a;
  33.     if(a==15)
  34.     {
  35.      c=(-15);
  36.      d=c;
  37.      cont=cont+1;
  38.     }
  39.     if(a==10)
  40.     {
  41.      c=(-10);
  42.      d=c;
  43.      cont=cont+1;
  44.     }
  45.     if(a==6)
  46.     {
  47.      c=(0);
  48.      d=c;
  49.      cont=cont+1;
  50.     }
  51.     if(a==3)
  52.     {
  53.      c=(1);
  54.      d=c;
  55.      cont=cont+1;
  56.     }
  57.     if(a==1)
  58.     {
  59.      c=(3);
  60.      d=c;
  61.      cont=cont+1;
  62.     }
  63.     if(a==0)
  64.     {
  65.      c=(6);
  66.      d=c;
  67.      cont=cont+1;
  68.     }
  69.     if(a==-10)
  70.     {
  71.      c=(10);
  72.      d=c;
  73.      cont=cont+1;
  74.     }
  75.     if(a==-15)
  76.     {
  77.      c=(15);
  78.      d=c;
  79.      cont=cont+1;
  80.     }
  81.     if(a!=0&&a!=1&&a!=3&&a!=6&&a!=10&&a!=15&&a!=-10&&a!=-15)
  82.     {
  83.      printf("\nPunteggio non valido");
  84.     }
  85.     pa=pa+a;
  86.     pb=pb+b;
  87.     pc=pc+c;
  88.     pd=pd+d;
  89.     printf("\nIl %c giocatore ha %d punti.",x,pa);
  90.     printf("\nIl secondo giocatore ha %d punti.",pb);
  91.     printf("\nIl terzo giocatore ha %d punti.",pc);
  92.     printf("\nIl quarto giocatore ha %d punti.",pd);
  93.    }
  94.   }
  95.   if(t==2)
  96.   {
  97.    
  98.   }
  99.   if(t==3)
  100.   {
  101.    
  102.   }
  103.   if(t==4)
  104.   {
  105.    
  106.   }
  107.   if(t==5)
  108.   {
  109.    
  110.   }
  111.   printf("Digitare 4 per tornao a 4.\n");
  112.   printf("Digitare 5 per torneo a 5.\n");
  113.   printf("Digitare 6 per torneo a 6.\n");
  114.   printf("Digitare 7 per tornao a 7.\n");
  115.   printf("Digitare 8 per torneo a 8.\n");
  116.   printf("Digitare 0 per uscire.\n");
  117.   scanf("%d",&t);
  118.  }
  119.  if(t<0)
  120.  {
  121.   printf("Opzione non valida");
  122.  }
  123.  if(t=0)
  124.  {
  125.   getchar();
  126.  }
  127. }


Ultima modifica effettuata da alexitaly92 il 27/10/2008 alle 0:06
PM Quote
Avatar
gioser (Normal User)
Pro


Messaggi: 111
Iscritto: 03/10/2008

Segnala al moderatore
Postato alle 8:56
Lunedì, 27/10/2008
prova a mettere uno spazio prima del %c nella stringa di formato della scanf per leggere il char.

Il tuo problema potrebbe essere dovuto al fatto che la scanf("%c" ... legge qualsiasi carattere, anche quelli di ritorno a capo.

Ultima modifica effettuata da gioser il 27/10/2008 alle 8:57
PM Quote
Avatar
alexitaly92 (Normal User)
Newbie


Messaggi: 2
Iscritto: 26/10/2008

Segnala al moderatore
Postato alle 15:05
Lunedì, 27/10/2008
LOL adesso mi legge la variabile.. però solo se è una lettera e poi non mi rimanda all'inizio del ciclo.... uff....:(

Ultima modifica effettuata da alexitaly92 il 27/10/2008 alle 15:22
PM Quote