Buon pomeriggio, Sono ancora qui perché, testando questo programma, ho notato che qualcosa non va;
ho provato a cambiare varie volte le condizioni nel do while, che secondo me sono la causa, ma senza risultati.
Questo è il testo:
Scrivere un programma che stampi tutti gli interi compresi tra due numeri decimali forniti in input,
estremi esclusi
E questo ciò che ho fatto:
#include <stdio.h>
#include <stdlib.h>
int main(){
float decimale1, decimale2, min, max, cont;
do{
printf("Inserire il primo numero: ");
scanf("%f", &decimale1);
}while(decimale1 == 0);
do{
printf("Inserire il secondo numero: ");
scanf("%f", &decimale2);
}while(decimale2 == 0);
if(decimale1 < decimale2){
min = decimale1; /*IL PRIMO VALORE E' MINORE*/
max = decimale2;
}else{
if(decimale2 < decimale1){
min = decimale2; /*IL SECONDO VALORE E' MINORE*/
max = decimale2;
}else{
max = decimale1;/*I VALORI SONO UGUALI*/
min = decimale1;
}
}
do{
for(cont = min + 1; max - 1; cont++){
printf("\nValori interi compresi tra %f e %f: ", decimale1, decimale2);
printf("\n-%d", (int)cont);
}
}while(decimale1 == (int) decimale1 || decimale2 == (int) decimale2);
return 0;
}
Potrebbe essere il casting che ho fatto nel do while errato, o proprio la verifica che siano decimali (?)