Non mi sono soffermato a vedere il codice, ma non mi piacciono quei goto..
Perchè non provi con un impostazione di questo tipo ?

codice:
#include <stdio.h>
#include <stdlib.h>

int main()
{
 int scelta=0;
    
  while ( (scelta=getch()-'0')!=0 )
      {

        switch (scelta)
        	{
        	case 1:
        		printf("Hai scelto %d \n" , scelta);
        		break;
        	case 2:
        		printf("Hai scelto %d \n" , scelta);
        		break;
        	case 0:
        		printf("Hai scelto %d \n" , scelta);
        		return 0;
        		break;
        	default:
        		printf("Scelta sbagliata\n");
        		break;
        		
        	}
      }

  system("pause");
  
}