Quelle est la différence entre% 2d et% 02d en langage C? Quelle est la logique?


Réponse 1:

% 2d en langage c complète le nombre avec un espace vide. Le nombre doit contenir moins de 2 caractères pour s'afficher:

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

la sortie sera "5", notez qu'il y a un espace vide avant 5.

Si vous essayez de faire quelque chose comme ça:

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

la sortie sera 454 sans espaces de tête.

Parlons maintenant de% 02d:

Le 0 signifie remplir le champ en utilisant des zéros et le 2 signifie que le champ est large de deux caractères, donc pour tout nombre qui prend moins de 2 caractères à afficher, il sera complété par un 0.

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

la sortie sera 03

si vous essayez de faire quelque chose comme:

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

la sortie sera 345 et aucun zéro de tête ne sera ajouté.

Maintenant, revenons à «% .6f»:

Cela signifie qu'il ne sortira que 6 chiffres après la décimale (arrondir à 6 places):

flotteur x = 345,24678389;
printf ("%. 6f", x);

la sortie sera 345.246784 car en 7ème position le nombre est supérieur à 5 donc il arrondit 3 à 4.

J'espère que cela t'aides !

codage heureux :)


Réponse 2:

Signification de% 2d: —Comme vous lisez un entier (% 2d), il n'autorisera qu'un entier de deux chiffres maximum. Si vous deviez lire un tableau de 50 caractères, vous devez utiliser% 50s. C'est la même idée.

nombre entier = 0;
scanf ("% 2d", & numéro);
printf ("% d", nombre);

Si l'utilisateur a réussi 21 pour la fonction scanf (), le nombre 21 serait stocké dans le nombre variable. Si l'utilisateur dépassait quelque chose de plus de 21, c'est-à-dire 987, seuls les 2 premiers chiffres seraient stockés - 98.

Signification de% 02d: - Vous devez utiliser% 02d si vous voulez que les zéros non significatifs soient remplis sur deux espaces:

printf ("% 02d:% 02d:% 02d \ n", heure, minute, seconde);

Voir par exemple le programme complet suivant:

#include 
int main (void) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("L'heure est% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    retourner 0;
}

qui génère:

L'heure est 03: 01: 04.000159

Réponse 3:

Signification de% 2d: —Comme vous lisez un entier (% 2d), il n'autorisera qu'un entier de deux chiffres maximum. Si vous deviez lire un tableau de 50 caractères, vous devez utiliser% 50s. C'est la même idée.

nombre entier = 0;
scanf ("% 2d", & numéro);
printf ("% d", nombre);

Si l'utilisateur a réussi 21 pour la fonction scanf (), le nombre 21 serait stocké dans le nombre variable. Si l'utilisateur dépassait quelque chose de plus de 21, c'est-à-dire 987, seuls les 2 premiers chiffres seraient stockés - 98.

Signification de% 02d: - Vous devez utiliser% 02d si vous voulez que les zéros non significatifs soient remplis sur deux espaces:

printf ("% 02d:% 02d:% 02d \ n", heure, minute, seconde);

Voir par exemple le programme complet suivant:

#include 
int main (void) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("L'heure est% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    retourner 0;
}

qui génère:

L'heure est 03: 01: 04.000159

Réponse 4:

Signification de% 2d: —Comme vous lisez un entier (% 2d), il n'autorisera qu'un entier de deux chiffres maximum. Si vous deviez lire un tableau de 50 caractères, vous devez utiliser% 50s. C'est la même idée.

nombre entier = 0;
scanf ("% 2d", & numéro);
printf ("% d", nombre);

Si l'utilisateur a réussi 21 pour la fonction scanf (), le nombre 21 serait stocké dans le nombre variable. Si l'utilisateur dépassait quelque chose de plus de 21, c'est-à-dire 987, seuls les 2 premiers chiffres seraient stockés - 98.

Signification de% 02d: - Vous devez utiliser% 02d si vous voulez que les zéros non significatifs soient remplis sur deux espaces:

printf ("% 02d:% 02d:% 02d \ n", heure, minute, seconde);

Voir par exemple le programme complet suivant:

#include 
int main (void) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("L'heure est% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    retourner 0;
}

qui génère:

L'heure est 03: 01: 04.000159