Mi sembra che anche atoi() sia usata male !?
dall'esempio non hai bisogno di convertire i caratteri in numero , lavora direttamente con i caratteri , a mio avviso sarà più semplice![]()
codice:char cod[1024]; //Forse è una dimensione eccessiva per tre caratteri :) do{ scanf("%3s",cod); }while( cod[0]<'1' ||cod[0]>'5'|| cod[2]<'1' || cod[2]>'5' || cod[1]!='#' ); printf("\nFUNZIONA!\n");