In pratica per domani dovrei finire questo programma e in pratica tengo questo problema che quando finisco uan funzione switch, me ne avvia un'altra anche se l'ho interrotta. Il codice è qua:
Qualcuno che mi riesce a risolvere? Grazie mille. Se non avete capito il problema potete provare ad eseguire il problema da compilatore. Grazie millle in anticipo.
C:
#include <stdio.h>
main ()
{
float a,v,t,v0,s0,s;
int risposta_1, risposta_2;
printf ("Questo e' un programma per l'analisi del moto rettilineo di un corpo in base ai dati inseriti.\n");
printf ("N.B: Questo programma e' utile solo nel caso in cui si deve analizzare un moto rettilineo.\n");
printf ("N.B: Inserire i valori con grandezze del S.I.\n");
printf ("E' presente una accelerazione? (0 per si, 1 per no).\n");
scanf ("%d", &risposta_1);
switch (risposta_1) {
case 1:
printf ("Il moto e' rettilineo uniforme.\n");
printf ("Si vuole sapere la posizione nello spazio del corpo? (0 per si, 1 per no)\n");
scanf ("%d", &risposta_2);
switch (risposta_2) {
case 0:
printf ("Si prega di inserire la velocita' del corpo...\n");
scanf ("%f", &v);
printf ("Inserire l'istante di tempo che si vuole calcolare...\n");
scanf ("%f", &t);
printf ("Inserire la posizione iniziale del corpo... (inserire 0 se non e' presente)\n");
scanf ("%f", &s0);
s=(v*t)+s0;
printf ("La posizione del corpo nell'instante di tempo specificato e' di... %f\n", s);
break;
case 1:
printf ("Si prega di riavviare il programma per una nuova analisi.\n");
break;
default:
printf ("Riavviare il programma e inserire un valore riconosciuto dal sistema.");
break;
}
case 0:
printf ("Il moto e' rettilineo uniformemente accelerato.\n");
printf ("Si vuole sapere la posizione nello spazio del corpo? (0 per si, 1 per no)\n");
scanf ("%d", &risposta_2);
switch (risposta_2) {
case 0:
printf ("Si prega di inserire l'istante di tempo da considerare...\n");
scanf ("%f", &t);
printf ("Inserire l'accelerazione del corpo...\n");
scanf ("%f", &a);
printf ("Inserire la velocita' iniziale del corpo... (inserire 0 se non e' presente)\n");
scanf ("%f", &v0);
printf ("Inserire il valore della posizione iniziale... (inserire 0 se non e' presente)\n");
scanf ("%f", &s0);
s=s0+(v0*t)+0.5*a*(t*t);
printf ("La posizione del corpo nell'istante di tempo specificato e' di...%f\n", s);
break;
case 1:
printf ("Si prega di riavviare il programma per una nuova analisi.\n");
break;
default:
printf ("Riavviare il programma e inserire un valore riconosciuto dal sistema.");
break;
}
default:
printf ("Riavviare il programma e inserire un valore riconosciuto dal sistema.\n");
break;
}
system ("pause");
}
Ultima modifica da un moderatore: