Δημοσιεύτηκε: 11 Νοέμ 2011, 21:11
από linuxs
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;
}