ho modificato un po , nel while hai messo un OR mentre andava un AND
se tutte e due le variabili sono minori di 70
ho cambiato un po le variabili nei cicli for fatti partire da 0 a <70
ho messo un controllo che il valore delle posizioni non diventi mai inferiore a 0
ho messo un controllo che permette di non avere valori diversi da 1 2 o 3 all'interno dell'array
per il resto tutto ok funziona 
SOTTO I COMMENTI IN MAIUSCOLO SONO LE CORREZZIONI
codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int segnaPosTart( int ran );
int segnaPosLepr( int ran );
void mostraPerc( int per[70] );
int main()
{
int percorso[70] = {0}; // vettore del percorso
int posTart = 0;
int posLepr = 0;
int i; // i è compreso tra 1 e 10 e serve per generare una mossa.
int k;
srand(time (NULL)); /* specifica il seme per il generatore di
numeri casuali */
printf("BANG !!!!!\n");
while ( (posTart <= 69) && (posLepr <= 69) ) { //AVEVI MESSO UN OR QUINDI CONTINUAVA ANCHE
// MOLTO OLTRE I 70 PER VARIABILE
//Azzero il percorso per mostrare solo le mosse eseguite nel ciclo
for (k=0; k< 70; k++) {
percorso[k] = 0;
}
/* in base al numero generato posTart e posLepr restituiscono
* il tipo di mosse da eseguire (ovvero i passi avanti o dietro) */
i = rand() % 9 + 1;
posTart += segnaPosTart(i);
if(posTart<0)posTart=0;//LIMITO LA DIMENSIONE MINIMA DELL'ARRAY
i = rand() % 9 + 1;
posLepr += segnaPosLepr(i);
if(posLepr<0)posLepr=0;//LIMITO LA DIMENSIONE MINIMA DELL'ARRAY
// CON QUESTE CONDIZIONI IN PERCORSO PUO' ESSERCI SOLO 1 2 O 3
if(percorso[posTart]!=1 && percorso[posTart]!=3 )
percorso[posTart] += 1;
if(percorso[posTart]!=2 && percorso[posTart]!=3 )
percorso[posLepr] += 2;
mostraPerc(percorso);
printf("\n");
}
if (posTart >= 70)
printf("\n\nVINCE LA TARTARUGA!!!!");
else if (posLepr >= 70)
printf("\n\nVINCE LA LEPRE!!!!");
getchar(); // UNA PAUSA AL PROGRAMMA
return 0;
}
int segnaPosTart( int ran )
{
int pos;
if ( (ran >= 1) && (ran <= 5) )
pos = 3;
else if ( (ran >= 6) && (ran <= 7) )
pos = -6;
else if ( (ran >= 8) && (ran <= 10) )
pos = 1;
return pos;
}
int segnaPosLepr( int ran )
{
int pos;
if ( (ran >= 1) && (ran <= 2) )
pos = 0;
else if ( (ran >= 3) && (ran <= 4) )
pos = 9;
else if ( (ran >= 5) && (ran <= 5) )
pos = -12;
else if ( (ran >= 6) && (ran <= 8) )
pos = 1;
else if ( (ran >= 9) && (ran <= 10) )
pos = -2;
return pos;
}
void mostraPerc( int perc[] )
{
int k;
for (k=0; k<70; k++) { // K PARTE DA 0 E NON DA 1
if (perc[k] == 1)
printf("%4s", "T");
else if (perc[k] == 2)
printf("%4s", "L");
else if (perc[k] == 3)
printf("%5s", "OUCH!");
else if (perc[k] == 0)
printf("--"); // HO MESSO DUE TRATTINI è PIU CARNIO BA' :)
}
}