Ripetere stessa operazione in programma dev c?

di il
11 risposte

Ripetere stessa operazione in programma dev c?

Salve a tutti , ho un programma del genere : " se e vero quello che hai detto allora va bene, se no ti dico che non va bene e ti permetti di ripetere l operazione", :
#include<stdio.h>
#include<stdlib.h>

main()
{
int m[3][3];
int i,j,s,so,som,somm,ciao,cacca;
s=0;
so=0;
som=0;
somm=0;
printf("inserisci elementi\n consiglio : 4,3,8,9,5,1,2,7,6\n o: 6,7,2,1,5,9,8,3,4\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++)
scanf("%d",&m[j]);
}
for(i=0;i<3;i++){
j=3-i+1-2;
s=s+m[j];
}

for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(i==j){

so=so+m[j];
}
}
}
printf("somma diagonale secondaria: %d\n",s);
printf("somma diagonale primaria: %d\n",so);
for(i=0;i<3;i++){
som=som+m;
}
printf("la somma della prima riga e : %d\n",som);
for(j=0;j<3;j++){
somm=somm+m[j][j];
}
printf("somma colonna:%d\n",somm);
if(s==so){

if(so==som){

if(som==somm){
printf("il quadrato e meagico!\n");
printf("il 'magic number' e %d\n",s);
}
}
}
else{
printf("non e un quadrato magico , ripeti \n ");
}

system("pause");
return 0;
}
// esempi di quadrati number :
//4,3,8,9,5,1,2,7,6
//6,7,2,1,5,9,8,3,4


questo e un mio programma del quadrato magico , per verificare se lo e veramente, quello che voglio sapere e come ripetere tutta l operazione senza riscrivere tutto il programma nel momento in cui non e effettivamente un quadrato magico,magari grazie ad una funzione precisa , perche se no uscirebbe davvero troppo lungo :/. grazie a tutti e buon natale!

11 Risposte

  • Re: Ripetere stessa operazione in programma dev c?

    Non ho letto tutto il codice, anche perché non è ben formattato, ecc. Comunque il modo standard per ripetere l'esecuzione di un programma è un semplice do-while:
    
    do {
        // il tuo programma
    } while( /* non e' verificata la condizione di uscita */ );
    
  • Re: Ripetere stessa operazione in programma dev c?

    Vabbe ma quindi mi tocca sempre riscrivere la parte da ripetere, eh cosi ci sono riuscito anche io

    grazie lo stesso !
  • Re: Ripetere stessa operazione in programma dev c?

    Ma no! Cosa devi riscrivere? Metti tutto il tuo programma nella parte del do, poi valuti la condizione di uscita nel while. Devi aggiungere tipo una riga di codice.
  • Re: Ripetere stessa operazione in programma dev c?

    JusT Roll ha scritto:


    vabbe ma quindi mi tocca sempre riscrivere la parte da ripetere, eh cosi ci sono riuscito anche io

    grazie lo stesso !
    Non mi pare tu abbia capito ... pensaci un po' di più ...
  • Re: Ripetere stessa operazione in programma dev c?

    Si ma non capisco cosa va dentro il while, io voglio far in modo che ll ' utente se non ha trovato il quadrato magico gli venga permesso di poter ripetere l operazione , grazie dell aiuto e della pazienza
  • Re: Ripetere stessa operazione in programma dev c?

    Oregon ci sono arrivato, ma non so cosa devo mettere dentro il while
  • Re: Ripetere stessa operazione in programma dev c?

    Se ci sei "arrivato" perché non lo dimostri?

    Inserisci nel ciclo "la parte di codice che vuoi ripetere".
  • Re: Ripetere stessa operazione in programma dev c?

    Ah , quindi nel ciclo while va messa tutta la parte da ripetere...ora lo faccio e penso al perche di questo, grazie
  • Re: Ripetere stessa operazione in programma dev c?

    No, nel while devi solo valutare la condizione di uscita dal ciclo. Puoi semplicemente fare
    
    do {
        // verifica se e' un quadrato magico
    } while (/* non e' un quadrato magico */ );
    
    Per la valutazione della condizione ti tieni un semplice flag e il gioco è fatto.
  • Re: Ripetere stessa operazione in programma dev c?

    Si ho capito cosa vuol dire e ti ringrazio per avermelo riscritto in modo piu semplice, ma la mia condizione di uscita ( non e un quadrato magico) e quella che se non lo e appunto deve ripetere tutto quando quello che c e nel primo " do"
  • Re: Ripetere stessa operazione in programma dev c?

    E allora provo ad essere ancora più esplicito:
    
    bool isQuadratoMagico = false;
    
    do {
        // controllo se e' un quadrato magico
        // e memorizzo il risultato nella variabile booleana
    } while(!isQuadratoMagico);
    
    Più chiaro di così...

    P.S. Se non hai a disposizione il tipo bool, va benissimo anche un int.
Devi accedere o registrarti per scrivere nel forum
11 risposte