Ποια είναι η διαφορά μεταξύ% 2d και% 02d στη γλώσσα C; Ποια είναι η λογική;


Απάντηση 1:

Το% 2d στη γλώσσα c τοποθετεί τον αριθμό με κενό χώρο. Ο αριθμός πρέπει να διαρκέσει λιγότερο από 2 χαρακτήρες για εμφάνιση:

int x = 5;
printf ("% 2d", x);

η έξοδος θα είναι "5", παρατηρήστε ότι υπάρχει κενός χώρος πριν από 5.

Αν προσπαθήσετε να κάνετε κάτι τέτοιο:

int x = 454;
printf ("% 2d", x);

η έξοδος θα είναι 454 χωρίς κενά διαστήματα.

τώρα ας μιλήσουμε για% 02d:

Το μέσο 0 σημαίνει να τοποθετήσετε το πεδίο χρησιμοποιώντας μηδενικά και το 2 σημαίνει ότι το πεδίο είναι πλάτους δύο χαρακτήρων, οπότε για αριθμούς που χρειάζονται λιγότερους από 2 χαρακτήρες για εμφάνιση, θα είναι γεμάτο με 0.

int x = 3;
printf ("% 02d", x);

η έξοδος θα είναι 03

αν προσπαθήσετε να κάνετε κάτι σαν:

int x = 345;
printf ("% 02d", x);

η έξοδος θα είναι 345 και δεν θα προστεθούν μηδενικά ηγέτες.

Τώρα ας φτάσουμε στο "% .6f":

Σημαίνει ότι θα αποδίδει μόνο 6 ψηφία μετά το δεκαδικό ψηφίο (στρογγυλοποιείται σε 6 θέσεις):

float x = 345.24678389.
printf ("%. 6f", x);

η έξοδος θα είναι 345.246784 καθώς στην 7η θέση ο αριθμός είναι μεγαλύτερος από 5 και έτσι ολοκληρώνεται με 3 έως 4.

Ελπίζω ότι αυτό βοηθά!

ευτυχισμένη κωδικοποίηση :)


Απάντηση 2:

Έννοια του% 2d: -Όταν διαβάζετε έναν ακέραιο αριθμό (% 2d), θα επιτρέπεται μόνο ένας ακέραιος μήκους έως και δύο ψηφίων. Αν έπρεπε να διαβάσετε έναν πίνακα 50 χαρακτήρων, θα πρέπει να χρησιμοποιήσετε% 50s. Είναι η ίδια ιδέα.

int αριθμός = 0;
scanf ("% 2d", & αριθμός);
printf ("% d", αριθμός);

Αν ο χρήστης περάσει 21 για τη λειτουργία scanf (), ο αριθμός 21 θα αποθηκευτεί στον μεταβλητό αριθμό. Αν ο χρήστης περάσει κάτι μεγαλύτερο από 21, δηλ. 987, θα αποθηκευτούν μόνο τα πρώτα 2 ψηφία - 98.

Έννοια του% 02d: - Πρέπει να χρησιμοποιήσετε% 02d αν θέλετε μηδενικά οδηγημένα σε δύο κενά:

printf ("% 02d:% 02d:% 02d \ n", ώρα, λεπτό, δευτερόλεπτο);

Δείτε για παράδειγμα το ακόλουθο πλήρες πρόγραμμα:

#include 
int main (άκυρη) {
    int hh = 3, mm = 1, ss = 4, dd = 159.
    printf ("Η ώρα είναι% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    επιστροφή 0?
}}

που εξάγει:

Η ώρα είναι 03: 01: 04.000159

Απάντηση 3:

Έννοια του% 2d: -Όταν διαβάζετε έναν ακέραιο αριθμό (% 2d), θα επιτρέπεται μόνο ένας ακέραιος μήκους έως και δύο ψηφίων. Αν έπρεπε να διαβάσετε έναν πίνακα 50 χαρακτήρων, θα πρέπει να χρησιμοποιήσετε% 50s. Είναι η ίδια ιδέα.

int αριθμός = 0;
scanf ("% 2d", & αριθμός);
printf ("% d", αριθμός);

Αν ο χρήστης περάσει 21 για τη λειτουργία scanf (), ο αριθμός 21 θα αποθηκευτεί στον μεταβλητό αριθμό. Αν ο χρήστης περάσει κάτι μεγαλύτερο από 21, δηλ. 987, θα αποθηκευτούν μόνο τα πρώτα 2 ψηφία - 98.

Έννοια του% 02d: - Πρέπει να χρησιμοποιήσετε% 02d αν θέλετε μηδενικά οδηγημένα σε δύο κενά:

printf ("% 02d:% 02d:% 02d \ n", ώρα, λεπτό, δευτερόλεπτο);

Δείτε για παράδειγμα το ακόλουθο πλήρες πρόγραμμα:

#include 
int main (άκυρη) {
    int hh = 3, mm = 1, ss = 4, dd = 159.
    printf ("Η ώρα είναι% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    επιστροφή 0?
}}

που εξάγει:

Η ώρα είναι 03: 01: 04.000159

Απάντηση 4:

Έννοια του% 2d: -Όταν διαβάζετε έναν ακέραιο αριθμό (% 2d), θα επιτρέπεται μόνο ένας ακέραιος μήκους έως και δύο ψηφίων. Αν έπρεπε να διαβάσετε έναν πίνακα 50 χαρακτήρων, θα πρέπει να χρησιμοποιήσετε% 50s. Είναι η ίδια ιδέα.

int αριθμός = 0;
scanf ("% 2d", & αριθμός);
printf ("% d", αριθμός);

Αν ο χρήστης περάσει 21 για τη λειτουργία scanf (), ο αριθμός 21 θα αποθηκευτεί στον μεταβλητό αριθμό. Αν ο χρήστης περάσει κάτι μεγαλύτερο από 21, δηλ. 987, θα αποθηκευτούν μόνο τα πρώτα 2 ψηφία - 98.

Έννοια του% 02d: - Πρέπει να χρησιμοποιήσετε% 02d αν θέλετε μηδενικά οδηγημένα σε δύο κενά:

printf ("% 02d:% 02d:% 02d \ n", ώρα, λεπτό, δευτερόλεπτο);

Δείτε για παράδειγμα το ακόλουθο πλήρες πρόγραμμα:

#include 
int main (άκυρη) {
    int hh = 3, mm = 1, ss = 4, dd = 159.
    printf ("Η ώρα είναι% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    επιστροφή 0?
}}

που εξάγει:

Η ώρα είναι 03: 01: 04.000159