in breve.. la parte di codice qui presente dovrebbe fare questo: viene buttata una carta, se la carta è presente a terra, leva la carta, altrimenti l'aggiunge al piatto..

codice:
for (int k=0;k<3;k++)                    
{                        
         ordina(piatto,size);                        
         cout<<"quale carta butti? ["<<a<<b<<c<<"] : "; cin>>x;
         switch(x)                        
         {                            
                 case 0: a=""; break;                            
                 case 1: b=""; break;                            
                 case 2: c=""; break;                        
         }                        
         A=true;                        
         for (int i=0;i<size;i++)                        
         {                               
                 if (((piatto[i]-io[x])%10==0)&&(A==true))    //trova la carta  
                 {
                        Mmazzo=piatto[i];                                
                        cout<<"\nLe carta sul tuo mazzo e': \n";getMazzo(Mmazzo);       
                        A=false;                                
                        if (i==size-1)                                
                        {                                              
                                 piatto[i]=0;      //questo annulla la carta                                   
                                 size--;                                
                        }                                
                        else{                                     
                               piatto[i]=piatto[size-1];
                               piatto[size-1]=0;                                     
                               size--;                                     
                              }                            
                 }                        
}                        
if (A==true)                        
{                            
            piatto[size++]=io[x];                        
}                         
getPiatto(size);
}
ora vi espongo il problema tramite una semplice tabella.. 0 sta per carta non presa, 1 carta presa:

0 0 0 il programma funziona
1 1 1 il programma funziona
1 1 0 il programma funziona
1 0 0 il programma funziona
1 0 1 il programma funziona
0 0 1 il programma NON funziona
0 1 0 il programma NON funziona
0 1 1 il programma funziona

e non riesco proprio a capire perche