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' :)
		
	}	

}