Aiuto sul while....

di il
1 risposte

Aiuto sul while....

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

void caricamat (int M[][3]);
void stampamat(int M[][3]);
using namespace std; 
int main ()
{
	
int M[3][3],i,j,k,D,V[9],temp,MAX=0;
printf("questo è l'esercizio di gesù,buon divertimento");
/*costruisco un do-while per permettere di ripetere l'esercizio senza eseguirlo ogni volta*/

while (MAX=5){ printf("3...2...1...VIA!");
 	
  /*chiedo gli elementi uno per uno*/
  for (i=0;i<3;i++)
   for (j=0;j<3;j++)
   
   {
   	printf ("inserire elemento:  ");
   	scanf ("%d",&M[i][j]);
   }
   /*visualizza la matrice*/
   for(i=0;i<3;i++)
   {
   	for(j=0;j<3;j++)
   		
   	printf ("%d\t",M[i][j]);
   	
   }
   /*calcolo della determinante*/
  D=M[0][0]*M[1][1]*M[2][2]+M[0][1]*M[1][2]*M[2][0]+M[0][2]*M[1][0]*M[2][1]-(M[2][0]*M[1][1]*M[0][2]+M[2][1]*M[1][2]*M[0][2]+M[1][0]*M[0][1]*M[2][2]);
  printf("%d\t",D);
  /*trasformazione delle righe della matrice in vettori*/
  /*costruisce il vettore*/
  for(i=0;i<3;i++)
    for(j=0;j<3;j++)
	{ 
		V[k]=M[i][j];
		k++;
	}
	/*visualizza il vettore non ordinato*/
	printf("vettore non ordinato:\n");
	 for(k=0;k<9;k++)
	   printf("%d\t",V[k]);
    /*ordinamento bubble-sort*/
 	for(i=0;i<7;i++)
 	 for(j=i+1;j<9;j++)
 	 		if(V[i]>V[j])
 	 		{
 	 			temp=V[i];
 	 			V[i]=V[j];
 	 			V[j]=temp;
 	 	    }
 	 	printf("\n");
 	 	printf("vettore miracolosamente ordinato:\n");
 	 	for(k=0;k<9;k++)
	   printf("%d\t",V[k],MAX++);
	   
	    
}
return 0;
}


void caricamat (int M[][3]);
Ragazzi , mi serve una mano a capire dove ho sbagliato ovvero quando vado a compilare l'esercizio mi si dovrebbe ripetere 5 volte , ma mettendo = nel while me lo ripete n volte e con il '<' solo una volta.

1 Risposte

  • Re: Aiuto sul while....

    Non è che sei stato chiarissimo, ma in sostanza MAX<=5

    E' scritto comunque malissimo, in generale...
    ... le variabili-indici di contatori sono chiamate i,j,k..l (eredità FORTRAN)
    ... quindi non in maiuscolo (che tipicamente sono costanti)
    ... e non si inizializzano a zero nella dichiarazione (è questione di gusti)...
    ... e non si "incrementano a trandimento" (MAX++), ma esplicitamente.
    
    l=0;
    while (l<=5)
    {
      ...fai qualcosa...
      l++;
    }
    In questo caso l varrà 0,1,2,3,4,5 (cioè 6 ciclate in tutto)
Devi accedere o registrarti per scrivere nel forum
1 risposte