Funzioni in C

di il
4 risposte

Funzioni in C

Giuro che sto uscendo pazzo.. Allora ho fatto questo programma che in pratica simula gli autoscontri.. Le hanno delle percentuali di spostamento. Il programma termina quando due auto si scontrano:

Questo funziona
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main ()
{
     char pista[][7]={{' ',' ',' ','B',' ',' ',' '},
                      {' ',' ',' ',' ',' ',' ',' '},
                      {' ',' ',' ',' ',' ',' ',' '},
                      {'A',' ',' ',' ',' ',' ','C'},
                      {' ',' ',' ',' ',' ',' ',' '},
                      {' ',' ',' ',' ',' ',' ',' '},
                      {' ',' ',' ','D',' ',' ',' '}};
     int i,j,x1=3,x2=0,x3=3,x4=6,y1=0,y2=3,y3=6,y4=3,A=1,B=100,nc,z=0;
     
     srand((unsigned int)time(0));
     
     for(i=0;i<7;i++)  //visualizzo la pista con le auto
     {
         for(j=0;j<7;j++)
         {       
             printf(" %c",pista[i][j]);
         }
         printf("\n");
     }
     printf("\n------------------------------\n\nPremi Invio per iniziare a giocare\n");
     getchar();
    
     do
     {
           //giocatore1 (A)
           nc=A+rand()%(B+1-A); //genero un numero casuale per vedere in quale posizione si deve spostare
           if(nc<=20 && y1!=6) //va a destra
           {
                pista[x1][y1]=' ';
                y1++;
                if (pista[x1][y1]=='B' || pista[x1][y1]=='C' || pista[x1][y1]=='D')
                z++;  
                else
                pista[x1][y1]='A';              
           }
           if(nc>=21 && nc<=40 && y1!=0) //per andare a sinistra
           {
                pista[x1][y1]=' '; //svuoto la posizione precedente
                y1--;
                if (pista[x1][y1]=='B' || pista[x1][y1]=='C' || pista[x1][y1]=='D') //se la prossima posizione è gia occupata...
                z++;  //...incremento z di 1
                else
                pista[x1][y1]='A';    //altrimenti vado a sinistra normalmente
           }
           if(nc>=41 && nc<=70 && x1!=0) //per andare sopra
           {
                pista[x1][y1]=' ';
                x1--;
                if (pista[x1][y1]=='B' || pista[x1][y1]=='C' || pista[x1][y1]=='D')
                z++;  
                else
                pista[x1][y1]='A';   
           }
           if(nc>=71 && nc<=100 && x1!=6) //per andare sotto
           {
                pista[x1][y1]=' ';
                x1++;
                if (pista[x1][y1]=='B' || pista[x1][y1]=='C' || pista[x1][y1]=='D')
                z++;  
                else
                pista[x1][y1]='A';    
           }
           
       
       //giocatore2 (B)
           nc=A+rand()%(B+1-A);
           if(nc<=40 && y2!=6) //per andare a destra
           {
                pista[x2][y2]=' ';
                y2++;
                if (pista[x2][y2]=='A' || pista[x2][y2]=='C' || pista[x2][y2]=='D')
                z++;  
                else
                pista[x2][y2]='B';      
           }
           if(nc>=41 && nc<=50 && y2!=0) //per andare a sinistra
           {
                pista[x2][y2]=' ';
                y2--;
                if (pista[x2][y2]=='A' || pista[x2][y2]=='C' || pista[x2][y2]=='D')
                z++;  
                else
                pista[x2][y2]='B'; 
           }
           if(nc>=51 && nc<=65 && x2!=0) //per andare sopra
           {
                pista[x2][y2]=' ';
                x2--;
                if (pista[x2][y2]=='A' || pista[x2][y2]=='C' || pista[x2][y2]=='D')
                z++;  
                else
                pista[x2][y2]='B'; 
           }
           if(nc>=66 && nc<=100 && x2!=6) //per andare sotto
           {
                pista[x2][y2]=' ';
                x2++;
                if (pista[x2][y2]=='A' || pista[x2][y2]=='C' || pista[x2][y2]=='D')
                z++;  
                else
                pista[x2][y2]='B'; 
           }
           
             
             //giocatore3 (C)
           nc=A+rand()%(B+1-A);
           if(nc<=30 && y3!=6) //per andare a destra
           {
                pista[x3][y3]=' ';
                y3++;
               if (pista[x3][y3]=='A' || pista[x3][y3]=='B' || pista[x3][y3]=='D')
                z++;  
                else
                pista[x3][y3]='C'; 
           }
           if(nc>=31 && nc<=50 && y3!=0) //per andare a sinistra
           {
                pista[x3][y3]=' ';
                y3--;
                if (pista[x3][y3]=='A' || pista[x3][y3]=='B' || pista[x3][y3]=='D')
                z++;  
                else
                pista[x3][y3]='C'; 
           }
           if(nc>=51 && nc<=55 && x3!=0) //per andare sopra
           {
                pista[x3][y3]=' ';
                x3--;
                if (pista[x3][y3]=='A' || pista[x3][y3]=='B' || pista[x3][y3]=='D')
                z++;  
                else
                pista[x3][y3]='C'; 
           }
           if(nc>=56 && nc<=100 && x3!=6) //per andare sotto
           {
                pista[x3][y3]=' ';
                x3++;
                if (pista[x3][y3]=='A' || pista[x3][y3]=='B' || pista[x3][y3]=='D')
                z++;  
                else
                pista[x3][y3]='C'; 
           }
           
                     
               //giocatore4 (D)
           nc=A+rand()%(B+1-A);
           if(nc<=20 && y4!=6) //per andare a destra
           {
                pista[x4][y4]=' ';
                y4++;
                if (pista[x4][y4]=='A' || pista[x4][y4]=='B' || pista[x4][y4]=='C')
                z++;  
                else
                pista[x4][y4]='D'; 
           }
           if(nc>=21 && nc<=50 && y4!=0) //per andare a sinistra
           {
                pista[x4][y4]=' ';
                y4--;
                if (pista[x4][y4]=='A' || pista[x4][y4]=='B' || pista[x4][y4]=='C')
                z++;  
                else
                pista[x4][y4]='D';
           }
           if(nc>=51 && nc<=75 && x4!=0) //per andare sopra
           {
                pista[x4][y4]=' ';
                x4--;
                if (pista[x4][y4]=='A' || pista[x4][y4]=='B' || pista[x4][y4]=='C')
                z++;  
                else
                pista[x4][y4]='D';
           }
           if(nc>=76 && nc<=100 && x4!=6) //per andare sotto
           {
                pista[x4][y4]=' ';
                x4++;
                if (pista[x4][y4]=='A' || pista[x4][y4]=='B' || pista[x4][y4]=='C')
                z++;  
                else
                pista[x4][y4]='D';
           }
              
       printf("\n-----------------------------\n\n");
       for(i=0;i<7;i++)
       {
         for(j=0;j<7;j++)
         {       
             printf(" %c",pista[i][j]);
         }
         printf("\n");
       } 
       getchar();

       if (z>0) //se z è maggiore di uno vuol dire che c'è stato uno o più scontri quindi il programma termina
       {       printf("SCONTRO! FINE PARTITA\n\n"); }
      
      } while (z==0);
               
     printf("Alla prossima!!\n\n");                                  
     getch();
}
Quando cerco di creare delle funzioni per gli spostamenti non funziona piu bene.. E pure i procedimenti sono gli stessi..

Ecco il codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void destra (char pista[][7],int x1,int y1,int z1);
void sinistra (char pista[][7],int x2,int y2,int z2);
void sopra (char pista[][7],int x3,int y3,int z3);
void sotto (char pista[][7],int x4,int y4,int z4);
void main ()
{
     char pista[][7]={{' ',' ',' ','X',' ',' ',' '},
                      {' ',' ',' ',' ',' ',' ',' '},
                      {' ',' ',' ',' ',' ',' ',' '},
                      {'X',' ',' ',' ',' ',' ','X'},
                      {' ',' ',' ',' ',' ',' ',' '},
                      {' ',' ',' ',' ',' ',' ',' '},
                      {' ',' ',' ','X',' ',' ',' '}};
     int i,j,x1=3,x2=0,x3=3,x4=6,y1=0,y2=3,y3=6,y4=3,A=1,B=100,nc=0,z=0;
     
     srand((unsigned int)time(0));
     
     for(i=0;i<7;i++)  //visualizzo la pista con le auto
     {
         for(j=0;j<7;j++)
         {       
             printf(" %c",pista[i][j]);
         }
         printf("\n");
     }
     printf("\n------------------------------\n\nPremi Invio per iniziare a giocare\n");
     getchar();
    
     do
     {
           //giocatore1 (A)
           nc=A+rand()%(B+1-A); //genero un numero casuale per vedere in quale posizione si deve spostare
           if(nc<=20 && y1!=6) //va a destra
           {
                destra (pista,x1,y1,z);             
           }
           if(nc>=21 && nc<=40 && y1!=0) //per andare a sinistra
           {
                sinistra (pista,x1,y1,z);  
           }
           if(nc>=41 && nc<=70 && x1!=0) //per andare sopra
           {
                sopra (pista,x1,y1,z);   
           }
           if(nc>=71 && nc<=100 && x1!=6) //per andare sotto
           {
                sotto (pista,x1,y1,z);      
           }
           
       
       //giocatore2 (B)
           nc=A+rand()%(B+1-A);
           if(nc<=40 && y2!=6) //per andare a destra
           {
                destra (pista,x2,y2,z);       
           }
           if(nc>=41 && nc<=50 && y2!=0) //per andare a sinistra
           {
                sinistra (pista,x2,y2,z); 
           }
           if(nc>=51 && nc<=65 && x2!=0) //per andare sopra
           {
                sopra (pista,x2,y2,z); 
           }
           if(nc>=66 && nc<=100 && x2!=6) //per andare sotto
           {
                sotto (pista,x2,y2,z); 
           }
           
             
             //giocatore3 (C)
           nc=A+rand()%(B+1-A);
           if(nc<=30 && y3!=6) //per andare a destra
           {
                destra (pista,x3,y3,z);  
           }
           if(nc>=31 && nc<=50 && y3!=0) //per andare a sinistra
           {
                sinistra (pista,x3,y3,z);
           }
           if(nc>=51 && nc<=55 && x3!=0) //per andare sopra
           {
                sopra (pista,x3,y3,z);
           }
           if(nc>=56 && nc<=100 && x3!=6) //per andare sotto
           {
                sotto (pista,x3,y3,z);
           }
           
                     
               //giocatore4 (D)
           nc=A+rand()%(B+1-A);
           if(nc<=20 && y4!=6) //per andare a destra
           {
                destra (pista,x4,y4,z); 
           }
           if(nc>=21 && nc<=50 && y4!=0) //per andare a sinistra
           {
                sinistra (pista,x4,y4,z); 
           }
           if(nc>=51 && nc<=75 && x4!=0) //per andare sopra
           {
                sopra (pista,x4,y4,z); 
           }
           if(nc>=76 && nc<=100 && x4!=6) //per andare sotto
           {
                sotto (pista,x4,y4,z); 
           }
              
       printf("\n-----------------------------\n\n");
       for(i=0;i<7;i++)
       {
         for(j=0;j<7;j++)
         {       
             printf(" %c",pista[i][j]);
         }
         printf("\n");
       } 
       getchar();

       if (z>0) //se z è maggiore di uno vuol dire che c'è stato uno o più scontri quindi il programma termina
       {       printf("SCONTRO! FINE PARTITA\n\n"); }
      
      } while (z==0);
               
     printf("Alla prossima!!\n\n");                                  
     getch();
}

void destra (char pista[][7],int x1,int y1,int z1)
{
     pista[x1][y1]=' ';
     y1++;
     if (pista[x1][y1]=='X' || pista[x1][y1]=='X' || pista[x1][y1]=='X')
     z1++;  
     else
     pista[x1][y1]='X'; 
}

void sinistra (char pista[][7],int x2,int y2,int z2)
{
     pista[x2][y2]=' '; 
     y2--;
     if (pista[x2][y2]=='X' || pista[x2][y2]=='X' || pista[x2][y2]=='X') 
     z2++;  
     else
     pista[x2][y2]='X';   
}

void sopra (char pista[][7],int x3,int y3,int z3)
{
     pista[x3][y3]=' ';
     x3--;
     if (pista[x3][y3]=='X' || pista[x3][y3]=='X' || pista[x3][y3]=='X')
     z3++;  
     else
     pista[x3][y3]='X';   
}

void sotto (char pista[][7],int x4,int y4,int z4)
{
     pista[x4][y4]=' ';
     x4++;
     if (pista[x4][y4]=='X' || pista[x4][y4]=='X' || pista[x4][y4]=='X')
     z4++;  
     else
     pista[x4][y4]='X';   
} 
Sarà che ho 39 di febbre ma io non riesco a capire.. io vedo tutto uguale e pure il secondo non funziona..

Grazie per eventuali risposte.

4 Risposte

  • Re: Funzioni in C

    Stai sbagliando il passaggio delle variabili. Li stai passanto per valore e non per riferimento. Ogni cambiamento che fai nelle funzioni nei variabili x1,y1 e z1 vengono perse appena la funzione termina.
  • Re: Funzioni in C

    Ho provato ad usare i puntatori ma non va lo stesso..
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    void destra (char pista[][7],int *x1,int *y1,int *z1);
    void sinistra (char pista[][7],int *x2,int y2,int *z2);
    void sopra (char pista[][7],int *x3,int *y3,int *z3);
    void sotto (char pista[][7],int *x4,int *y4,int *z4);
    void main ()
    {
         char pista[7][7]={{' ',' ',' ','X',' ',' ',' '},
                          {' ',' ',' ',' ',' ',' ',' '},
                          {' ',' ',' ',' ',' ',' ',' '},
                          {'X',' ',' ',' ',' ',' ','X'},
                          {' ',' ',' ',' ',' ',' ',' '},
                          {' ',' ',' ',' ',' ',' ',' '},
                          {' ',' ',' ','X',' ',' ',' '}};
         int i,j,x1=3,x2=0,x3=3,x4=6,y1=0,y2=3,y3=6,y4=3,A=1,B=100,nc=0,z=0;
         
         srand((unsigned int)time(0));
         
         for(i=0;i<7;i++)  //visualizzo la pista con le auto
         {
             for(j=0;j<7;j++)
             {       
                 printf(" %c",pista[i][j]);
             }
             printf("\n");
         }
         printf("\n------------------------------\n\nPremi Invio per iniziare a giocare\n");
         getchar();
        
         do
         {
               //giocatore1 (A)
               nc=A+rand()%(B+1-A); //genero un numero casuale per vedere in quale posizione si deve spostare
               if(nc<=20 && y1!=6) //va a destra
               {
                    destra (pista,&x1,&y1,&z);             
               }
               if(nc>=21 && nc<=40 && y1!=0) //per andare a sinistra
               {
                    sinistra (pista,&x1,&y1,&z);  
               }
               if(nc>=41 && nc<=70 && x1!=0) //per andare sopra
               {
                    sopra (pista,&x1,&y1,&z);   
               }
               if(nc>=71 && nc<=100 && x1!=6) //per andare sotto
               {
                    sotto (pista,&x1,&y1,&z);      
               }
               
           
           //giocatore2 (B)
               nc=A+rand()%(B+1-A);
               if(nc<=40 && y2!=6) //per andare a destra
               {
                    destra (pista,&x2,&y2,&z);       
               }
               if(nc>=41 && nc<=50 && y2!=0) //per andare a sinistra
               {
                    sinistra (pista,&x2,&y2,&z); 
               }
               if(nc>=51 && nc<=65 && x2!=0) //per andare sopra
               {
                    sopra (pista,&x2,&y2,&z); 
               }
               if(nc>=66 && nc<=100 && x2!=6) //per andare sotto
               {
                    sotto (pista,&x2,&y2,&z); 
               }
               
                 
                 //giocatore3 (C)
               nc=A+rand()%(B+1-A);
               if(nc<=30 && y3!=6) //per andare a destra
               {
                    destra (pista,&x3,&y3,&z);  
               }
               if(nc>=31 && nc<=50 && y3!=0) //per andare a sinistra
               {
                    sinistra (pista,&x3,&y3,&z);
               }
               if(nc>=51 && nc<=55 && x3!=0) //per andare sopra
               {
                    sopra (pista,&x3,&y3,&z);
               }
               if(nc>=56 && nc<=100 && x3!=6) //per andare sotto
               {
                    sotto (pista,&x3,&y3,&z);
               }
               
                         
                   //giocatore4 (D)
               nc=A+rand()%(B+1-A);
               if(nc<=20 && y4!=6) //per andare a destra
               {
                    destra (pista,&x4,&y4,&z); 
               }
               if(nc>=21 && nc<=50 && y4!=0) //per andare a sinistra
               {
                    sinistra (pista,&x4,&y4,&z); 
               }
               if(nc>=51 && nc<=75 && x4!=0) //per andare sopra
               {
                    sopra (pista,&x4,&y4,&z); 
               }
               if(nc>=76 && nc<=100 && x4!=6) //per andare sotto
               {
                    sotto (pista,&x4,&y4,&z); 
               }
                  
           printf("\n-----------------------------\n\n");
           for(i=0;i<7;i++)
           {
             for(j=0;j<7;j++)
             {       
                 printf(" %c",pista[i][j]);
             }
             printf("\n");
           } 
           getchar();
    
           if (z>0) //se z è maggiore di uno vuol dire che c'è stato uno o più scontri quindi il programma termina
           {       printf("SCONTRO! FINE PARTITA\n\n"); }
          
          } while (z==0);
                   
         printf("Alla prossima!!\n\n");                                  
         getch();
    }
    
    void destra (char pista[][7],int *x1,int *y1,int *z1)
    {
         pista[*x1][*y1]=' ';
         *y1++;
         if (pista[*x1][*y1]=='X' || pista[*x1][*y1]=='X' || pista[*x1][*y1]=='X')
         *z1++;  
         else
         pista[*x1][*y1]='X'; 
    }
    
    void sinistra (char pista[][7],int *x2,int *y2,int *z2)
    {
         pista[*x2][*y2]=' '; 
         *y2--;
         if (pista[*x2][*y2]=='X' || pista[*x2][*y2]=='X' || pista[*x2][*y2]=='X') 
         *z2++;  
         else
         pista[*x2][*y2]='X';   
    }
    
    void sopra (char pista[][7],int *x3,int *y3,int *z3)
    {
         pista[*x3][*y3]=' ';
         *x3--;
         if (pista[*x3][*y3]=='X' || pista[*x3][*y3]=='X' || pista[*x3][*y3]=='X')
         *z3++;  
         else
         pista[*x3][*y3]='X';   
    }
    
    void sotto (char pista[][7],int *x4,int *y4,int *z4)
    {
         pista[*x4][*y4]=' ';
         *x4++;
         if (pista[*x4][*y4]=='X' || pista[*x4][*y4]=='X' || pista[*x4][*y4]=='X')
         *z4++;  
         else
         pista[*x4][*y4]='X';   
    } 
    
    Dove sbaglio?
  • Re: Funzioni in C

    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    void destra (char pista[][7],int *x1,int *y1,int *z1);
    void sinistra (char pista[][7],int *x2,int y2,int *z2);
    void sopra (char pista[][7],int *x3,int *y3,int *z3);
    void sotto (char pista[][7],int *x4,int *y4,int *z4);
    void main ()
    {
    	char pista[7][7]={{' ',' ',' ','X',' ',' ',' '},
    	{' ',' ',' ',' ',' ',' ',' '},
    	{' ',' ',' ',' ',' ',' ',' '},
    	{'X',' ',' ',' ',' ',' ','X'},
    	{' ',' ',' ',' ',' ',' ',' '},
    	{' ',' ',' ',' ',' ',' ',' '},
    	{' ',' ',' ','X',' ',' ',' '}};
    	int i,j,x1=3,x2=0,x3=3,x4=6,y1=0,y2=3,y3=6,y4=3,A=1,B=100,nc=0,z=0;
    
    	srand((unsigned int)time(0));
    
    	for(i=0;i<7;i++)  //visualizzo la pista con le auto
    	{
    		for(j=0;j<7;j++)
    		{       
    			printf(" %c",pista[i][j]);
    		}
    		printf("\n");
    	}
    	printf("\n------------------------------\n\nPremi Invio per iniziare a giocare\n");
    	getchar();
    
    	do
    	{
    		//giocatore1 (A)
    		nc=A+rand()%(B+1-A); //genero un numero casuale per vedere in quale posizione si deve spostare
    		if(nc<=20 && y1!=6) //va a destra
    		{
    			destra (pista,&x1,&y1,&z);             
    		}
    		if(nc>=21 && nc<=40 && y1!=0) //per andare a sinistra
    		{
    			sinistra (pista,&x1,&y1,&z); 
    		}
    		if(nc>=41 && nc<=70 && x1!=0) //per andare sopra
    		{
    			sopra (pista,&x1,&y1,&z);   
    		}
    		if(nc>=71 && nc<=100 && x1!=6) //per andare sotto
    		{
    			sotto (pista,&x1,&y1,&z);     
    		}
    
    
    		//giocatore2 (B)
    		nc=A+rand()%(B+1-A);
    		if(nc<=40 && y2!=6) //per andare a destra
    		{
    			destra (pista,&x2,&y2,&z);       
    		}
    		if(nc>=41 && nc<=50 && y2!=0) //per andare a sinistra
    		{
    			sinistra (pista,&x2,&y2,&z);
    		}
    		if(nc>=51 && nc<=65 && x2!=0) //per andare sopra
    		{
    			sopra (pista,&x2,&y2,&z);
    		}
    		if(nc>=66 && nc<=100 && x2!=6) //per andare sotto
    		{
    			sotto (pista,&x2,&y2,&z);
    		}
    
    
    		//giocatore3 (C)
    		nc=A+rand()%(B+1-A);
    		if(nc<=30 && y3!=6) //per andare a destra
    		{
    			destra (pista,&x3,&y3,&z); 
    		}
    		if(nc>=31 && nc<=50 && y3!=0) //per andare a sinistra
    		{
    			sinistra (pista,&x3,&y3,&z);
    		}
    		if(nc>=51 && nc<=55 && x3!=0) //per andare sopra
    		{
    			sopra (pista,&x3,&y3,&z);
    		}
    		if(nc>=56 && nc<=100 && x3!=6) //per andare sotto
    		{
    			sotto (pista,&x3,&y3,&z);
    		}
    
    
    		//giocatore4 (D)
    		nc=A+rand()%(B+1-A);
    		if(nc<=20 && y4!=6) //per andare a destra
    		{
    			destra (pista,&x4,&y4,&z);
    		}
    		if(nc>=21 && nc<=50 && y4!=0) //per andare a sinistra
    		{
    			sinistra (pista,&x4,&y4,&z);
    		}
    		if(nc>=51 && nc<=75 && x4!=0) //per andare sopra
    		{
    			sopra (pista,&x4,&y4,&z);
    		}
    		if(nc>=76 && nc<=100 && x4!=6) //per andare sotto
    		{
    			sotto (pista,&x4,&y4,&z);
    		}
    
    		printf("\n-----------------------------\n\n");
    		for(i=0;i<7;i++)
    		{
    			for(j=0;j<7;j++)
    			{       
    				printf(" %c",pista[i][j]);
    			}
    			printf("\n");
    		}
    		getchar();
    
    		if (z>0) //se z è maggiore di uno vuol dire che c'è stato uno o più scontri quindi il programma termina
    		{       printf("SCONTRO! FINE PARTITA\n\n"); }
    
    	} while (z==0);
    
    	printf("Alla prossima!!\n\n");                                 
    	getch();
    }
    
    void destra (char pista[][7],int *x1,int *y1,int *z1)
    {
    	pista[*x1][*y1]=' ';
    	(*y1)++;
    	if (pista[*x1][*y1]=='X' || pista[*x1][*y1]=='X' || pista[*x1][*y1]=='X')
    		(*z1)++; 
    	else
    		pista[*x1][*y1]='X';
    }
    
    void sinistra (char pista[][7],int *x2,int *y2,int *z2)
    {
    	pista[*x2][*y2]=' ';
    	(*y2)--;
    	if (pista[*x2][*y2]=='X' || pista[*x2][*y2]=='X' || pista[*x2][*y2]=='X')
    		(*z2)++; 
    	else
    		pista[*x2][*y2]='X';   
    }
    
    void sopra (char pista[][7],int *x3,int *y3,int *z3)
    {
    	pista[*x3][*y3]=' ';
    	(*x3)--;
    	if (pista[*x3][*y3]=='X' || pista[*x3][*y3]=='X' || pista[*x3][*y3]=='X')
    		(*z3)++; 
    	else
    		pista[*x3][*y3]='X';   
    }
    
    void sotto (char pista[][7],int *x4,int *y4,int *z4)
    {
    	pista[*x4][*y4]=' ';
    	(*x4)++;
    	if (pista[*x4][*y4]=='X' || pista[*x4][*y4]=='X' || pista[*x4][*y4]=='X')
    		(*z4)++; 
    	else
    		pista[*x4][*y4]='X';   
    } 
    
    non assumere mai che il compilatore sappia cosa tu abbia in mente. metti sotto parentesi la precedenza delle operazioni di valutazione e/o incremneto.
  • Re: Funzioni in C

    Che stupido che sono!! Grazie!
Devi accedere o registrarti per scrivere nel forum
4 risposte