Quina diferència hi ha entre% 2d i% 02d en llenguatge C? Quina és la lògica?


Resposta 1:

% 2d en llenguatge c omple el número amb un espai buit. El número ha de tenir menys de 2 caràcters per mostrar-se:

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

la sortida serà "5", fixeu-vos que hi ha un espai buit abans de les 5.

Si intentes fer una cosa així:

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

la sortida serà de 454 sense espais líders.

ara parlem de% 02d:

El 0 significa tapar el camp mitjançant zeros i el 2 vol dir que el camp té dos caràcters d'amplada, per la qual cosa per a qualsevol nombre que tingui menys de 2 caràcters es mostri, es rellistarà amb un 0.

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

la sortida serà 03

si proveu de fer alguna cosa com:

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

la sortida serà de 345 i no s’afegiran zero.

Anem ara a "% .6f":

Significa que només sortirà 6 dígits després del lloc decimal (arrodonit a 6 llocs):

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

la sortida serà 345.246784, ja que a la 7a posició, el nombre és superior a 5, per la qual cosa s'arrodoneix del 3 al 4.

Espero que això ajudi !

feliç codificació :)


Resposta 2:

Significat de% 2d: —A mesura que llegiu un nombre enter (% 2d), només permetrà un nombre enter de fins a dos dígits. Si haguéssiu de llegir una matriu de 50 caràcters de llargada, haureu d'utilitzar% 50. És la mateixa idea.

nombre int = 0;
scanf ("% 2d" i número);
printf ("% d", número);

Si l'usuari passés 21 per a la funció scanf (), el número 21 es guardaria a la variable número. Si l'usuari passés una quantitat superior a 21, és a dir, 987, només es guardaran els primers dos dígits: 98.

Significat de% 02d: - Heu d'utilitzar% 02d si voleu conduir zero adreçats a dos espais:

printf ("% 02d:% 02d:% 02d \ n", hora, minut, segon);

Consulteu per exemple el programa complet següent:

#incloure 
int principal (nul) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("El temps és% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    retornar 0;
}

que surt:

L'hora és 03: 01: 04.000159

Resposta 3:

Significat de% 2d: —A mesura que llegiu un nombre enter (% 2d), només permetrà un nombre enter de fins a dos dígits. Si haguéssiu de llegir una matriu de 50 caràcters de llargada, haureu d'utilitzar% 50. És la mateixa idea.

nombre int = 0;
scanf ("% 2d" i número);
printf ("% d", número);

Si l'usuari passés 21 per a la funció scanf (), el número 21 es guardaria a la variable número. Si l'usuari passés una quantitat superior a 21, és a dir, 987, només es guardaran els primers dos dígits: 98.

Significat de% 02d: - Heu d'utilitzar% 02d si voleu conduir zero adreçats a dos espais:

printf ("% 02d:% 02d:% 02d \ n", hora, minut, segon);

Consulteu per exemple el programa complet següent:

#incloure 
int principal (nul) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("El temps és% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    retornar 0;
}

que surt:

L'hora és 03: 01: 04.000159

Resposta 4:

Significat de% 2d: —A mesura que llegiu un nombre enter (% 2d), només permetrà un nombre enter de fins a dos dígits. Si haguéssiu de llegir una matriu de 50 caràcters de llargada, haureu d'utilitzar% 50. És la mateixa idea.

nombre int = 0;
scanf ("% 2d" i número);
printf ("% d", número);

Si l'usuari passés 21 per a la funció scanf (), el número 21 es guardaria a la variable número. Si l'usuari passés una quantitat superior a 21, és a dir, 987, només es guardaran els primers dos dígits: 98.

Significat de% 02d: - Heu d'utilitzar% 02d si voleu conduir zero adreçats a dos espais:

printf ("% 02d:% 02d:% 02d \ n", hora, minut, segon);

Consulteu per exemple el programa complet següent:

#incloure 
int principal (nul) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("El temps és% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    retornar 0;
}

que surt:

L'hora és 03: 01: 04.000159