AldoBaldo ha scritto:
Io ci vedo anche altre cose "fuori posto". Ad esempio, sempre nello stesso "if" che controlla la segnalazione d'errore, c'è un punto e virgola di troppo...
A parte questo, direi che la strada scelta nel tentare di svolgere l'esercizio non è delle più dirette.
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
main()
{
int o,m,o1,m1,o2,m2,ore,min;
printf("\n INSERISCI DUE ORARI\n");
do{
printf("\n1)Inserisci l'ora: ");
scanf("%d",&o);
if(o<0||o>24)
printf("\nERRORE\n");
}while(o<0||o>24);
do{
printf("\n1)Inserisci i minuti: ");
scanf("%d",&m);
if(m<0||m>60)
printf("\nERRORE\n");
}while(m<0||m>60);
do{
printf("\n2)Inserisci l'ora: ");
scanf("%d",&o1);
if(o1<0||o1>24)
printf("\nERRORE\n");
}while(o1<0||o1>24);
do{
printf("\n2)Inserisci i minuti: ");
scanf("%d",&m);
if(m<0||m>60)
printf("\nERRORE\n");
}while(m<0||m>60);
if(o<o1)
{
printf("\nIl primo orario viene prima\n");
o2=o1-o;
m2=m1-m;
if(o2<0)
ore=o2*(-1);
else
ore=o2;
if(m2<0)
min=m2*(-1);
else
min=m2;
printf("\nIl numero di ore e minuti che intercorrono tra di essi sono %d ore e %d minuti",ore,min);
}
else
printf("\nIl secondo orario viene prima\n");
o2=o-o1;
m2=m-m1;
if(o2<0)
ore=o2*(-1);
else
ore=o2;
if(m2<0)
min=m2*(-1);
else
min=m2;
printf("\nIl numero di ore e minuti che intercorrono tra di essi sono %d ore e %d minuti",ore,min);
if(o&&m==o1&&m1)
printf("\nIl numero di ore e minuti che intercorrono tra di esse e' zero\n");
}
Ho deciso di modificarlo , ma mi dai dei problemini nel calcolo delle ore, nel senso che mi dice l'orario che viene prima , e mi calcola bene le ore che intercorrono , ma i minuti no, perchè?