Ho modificato il codice come segue ma continua a darmi problemi ( qualsiasi valore venga digitato lo riconosce a prescindere come diverso sia da 1 che da 2 e x)? Dov'è l'errore?
ps: quindi per dichiarare una variabile che potrebbe contenere sia valori numerici e lettere dell'alfabeto va bene il char?







codice:
 #include<stdio.h>
#include<stdlib.h>
main()
{
     
      int contatore, somma1, somma2, sommax, sommaerr;
      char valore; 
      somma1=0;
      somma2=0;
      sommax=0;
      sommaerr=0;
      contatore=0;
      scanf("%c", &valore); 
      while(contatore<=13)
      
      {
                  
                  if(valore=='1')
                  {
                               somma1=somma1+1;
                               contatore=contatore+1;                  
                               scanf("%c", &valore);
                  }   
                  if(valore=='2')
                  {
                               somma2=somma2+1;
                               contatore=contatore+1;
                               scanf("%c", &valore);
                  }   
                  if(valore=='x')
                  {
                               sommax=sommax+1;
                               contatore=contatore+1;
                               scanf("%c", &valore);
                  } 
                  if(valore!='1' && valore!='2' && valore!='x')
                  {
                               printf("Errore, devi digitare 1,2 o x.\n");
                               sommaerr=sommaerr+1;
                               scanf("%c", &valore);
                  }
      }
      
      printf("La somme di 1,2 e X sono rispettivamente %d%d%d%d", somma1,somma2,sommax,sommaerr);
      system("pause");
      }