counter 0-99 problem with the first 0 ten

Your blocks of characters are 7 characters long. Why are you using indexes 7 through 13?!? Did you intend to use "numero[p][i-7]"?

char numero[10][7]={"1111110","0110000","1101101","1111001","0110011","1011011","1011111","1110000","1111111","1110011"};

 for(i=7;i<14;i++){
     if(numero[p][i]=='1')
        digitalWrite(puerto[i], HIGH);
     else 
        digitalWrite(puerto[i], LOW);
   }