Δημοσιεύτηκε: 11 Νοέμ 2011, 21:11
andreask16 έγραψε:Σε ευχαριστώ πολύ για την άμεση απάντηση!
Νομίζω το λάθος είναι ότι χρησιμοποίησα int. Λογικά θα πρέπει να χρησιμοποιήσω float;
Κοίτα σε παρακαλώ τον κώδικα και πες μου αν είναι σωστός:
- Κώδικας: Επιλογή όλων
#include <stdio.h>
main()
{
float count,dig;
do {
printf("Enter the 6 digits:\n");
scanf("%f", &dig);
}
while (dig>=100000 && dig<=999999);
}
Κάνω κάπου λάθος; Γιατί αν εισάγω έναν 2ψήφιο πάλι μου τον δέχεται
Όπως καταλαβαίνεις παρακάτω αν δώσεις 6 ψηφία το δέχεται.
- Κώδικας: Επιλογή όλων
dragon@Dragon:~/Desktop$ ./a.out
Enter the 6 digits:
785463
Enter the 6 digits:
125498
Enter the 6 digits:
563217
Enter the 6 digits:
563
dragon@Dragon:~/Desktop$
με την μεταβλητή count τι κάνεις? Δεν την χρησιμοποιείς... :/ Επίσης στον κώδικα σου θα εκτελείται το μπλόκ εντολών όσο δίνεις 6 ψηφία. Εσύ μάλλον θές το ανάποδο! Πρέπει να προσθέσεις ένα if () μέσα στο loop. Με άλλα λόγια,
- Κώδικας: Επιλογή όλων
#include <stdio.h>
int main(void) {
int dig;
while(1){ // loop forever
printf("Enter the 6 digits:\n");
scanf("%d", &dig);
if(dig>100000 && dig<999999) { // if 6 digits
printf("You gave a right number!\n");
break; // exit loop else read another number
}
}
return 0;
}