Care este diferența dintre% 2d și% 02d în limbajul C? Care este logica?


Răspunsul 1:

% 2d în limbajul c plutește numărul cu un spațiu gol. Numărul trebuie să dureze mai puțin de 2 caractere pentru a fi afișat:

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

ieșirea va fi „5”, observați că există un spațiu gol înainte de 5.

Dacă încercați să faceți așa ceva:

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

producția va fi de 454 fără spații de conducere.

acum să vorbim despre% 02d:

0 înseamnă să pășești câmpul folosind zerourile, iar 2 înseamnă că câmpul are două caractere lățime, deci pentru orice numere care au mai puțin de 2 caractere să fie afișate, acesta va fi căptușit cu un 0.

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

producția va fi 03

dacă încercați să faceți ceva de genul:

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

ieșirea va fi 345 și nu vor fi adăugate zero.

Acum să trecem la „% .6f”:

Înseamnă că va emite doar 6 cifre după zecimal (rotunjire la 6 locuri):

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

ieșirea va fi 345.246784, deoarece la poziția a 7-a numărul este mai mare de 5, astfel încât să se rotunjească de la 3 la 4.

Sper că acest lucru vă ajută !

codare fericită :)


Răspunsul 2:

Înțelesul lui% 2d: —Când citiți un număr întreg (% 2d), acesta va permite doar un număr întreg de până la două cifre. Dacă ar trebui să citiți un tablou lung de 50 de caractere, ar trebui să utilizați% 50s. Este aceeași idee.

număr int = 0;
scanf („% 2d”, & număr);
printf ("% d", număr);

Dacă utilizatorul a trecut 21 pentru funcția scanf (), numărul 21 ar fi stocat în numărul variabilei. Dacă utilizatorul a trecut ceva mai mult de 21, adică 987, doar primele 2 cifre ar fi stocate - 98.

Înțelesul% 02d: - Trebuie să utilizați% 02d dacă doriți ca zero zero să fie captate pe două spații:

printf ("% 02d:% 02d:% 02d \ n", oră, minut, secundă);

Consultați, de exemplu, următorul program complet:

#include 
int main (nul) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("Timpul este% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    returnare 0;
}

care produce:

Ora este 03: 01: 04.000159

Răspunsul 3:

Înțelesul lui% 2d: —Când citiți un număr întreg (% 2d), acesta va permite doar un număr întreg de până la două cifre. Dacă ar trebui să citiți un tablou lung de 50 de caractere, ar trebui să utilizați% 50s. Este aceeași idee.

număr int = 0;
scanf („% 2d”, & număr);
printf ("% d", număr);

Dacă utilizatorul a trecut 21 pentru funcția scanf (), numărul 21 ar fi stocat în numărul variabilei. Dacă utilizatorul a trecut ceva mai mult de 21, adică 987, doar primele 2 cifre ar fi stocate - 98.

Înțelesul% 02d: - Trebuie să utilizați% 02d dacă doriți ca zero zero să fie captate pe două spații:

printf ("% 02d:% 02d:% 02d \ n", oră, minut, secundă);

Consultați, de exemplu, următorul program complet:

#include 
int main (nul) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("Timpul este% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    returnare 0;
}

care produce:

Ora este 03: 01: 04.000159

Răspunsul 4:

Înțelesul lui% 2d: —Când citiți un număr întreg (% 2d), acesta va permite doar un număr întreg de până la două cifre. Dacă ar trebui să citiți un tablou lung de 50 de caractere, ar trebui să utilizați% 50s. Este aceeași idee.

număr int = 0;
scanf („% 2d”, & număr);
printf ("% d", număr);

Dacă utilizatorul a trecut 21 pentru funcția scanf (), numărul 21 ar fi stocat în numărul variabilei. Dacă utilizatorul a trecut ceva mai mult de 21, adică 987, doar primele 2 cifre ar fi stocate - 98.

Înțelesul% 02d: - Trebuie să utilizați% 02d dacă doriți ca zero zero să fie captate pe două spații:

printf ("% 02d:% 02d:% 02d \ n", oră, minut, secundă);

Consultați, de exemplu, următorul program complet:

#include 
int main (nul) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("Timpul este% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    returnare 0;
}

care produce:

Ora este 03: 01: 04.000159