Mis vahe on C-keeles% 2d ja% 02d? Mis on loogika?


Vastus 1:

% 2d c keeles, tühjendab numbri tühja kohaga. Numbri kuvamiseks peaks kuluma vähem kui 2 tähemärki:

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

väljund on “5”, pange tähele, et enne 5 on tühi koht.

Kui proovite midagi sellist teha:

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

väljund on 454 ilma tühikuteta.

räägime nüüd% 02d:

0 tähendab välja nihutamist nulli abil ja 2 tähendab, et väli on kahe tähemärgi laiune, seega kõigi numbrite jaoks, mille kuvamiseks kulub vähem kui 2 tähemärki, täidetakse see numbriga 0.

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

väljund on 03

kui proovite teha midagi sellist:

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

väljund on 345 ja nulljooni ei lisata.

Tulgem nüüd alla protsendini „% .6f”:

See tähendab, et see annab ainult kümnendkoha täpsusega pärast koma (ümardada 6 kohta):

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

väljund on 345,246784, kuna 7. positsioonil on arv suurem kui 5, nii et see ümardab 3 kuni 4.

Loodan, et see aitab !

õnnelik kodeerimine :)


Vastus 2:

% 2d tähendus: - kui loete täisarvu (% 2d), lubab see ainult täisarvu, mis on kuni kaks numbrit. Kui peaksite lugema 50 tähemärgist massiivi, peaksite kasutama% 50s. See on sama mõte.

int arv = 0;
scanf ("% 2d" ja number);
printf ("% d", arv);

Kui kasutaja läbis funktsiooni scanf () 21, siis salvestatakse number 21 muutuja arvuna. Kui kasutaja möödas midagi pikemat kui 21, st 987, salvestatakse ainult esimesed 2 numbrit - 98.

% 02d tähendus: -% 02d tuleb kasutada juhul, kui soovite, et nulljooned oleksid kahes ruumis:

printf ("% 02d:% 02d:% 02d \ n", tund, minut, teine);

Vaadake näiteks järgmist täielikku programmi:

# kaasata 
int main (tühine) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("Aeg on% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    tagasi 0;
}

mis väljundid:

Aeg on 03: 01: 04.000159

Vastus 3:

% 2d tähendus: - kui loete täisarvu (% 2d), lubab see ainult täisarvu, mis on kuni kaks numbrit. Kui peaksite lugema 50 tähemärgist massiivi, peaksite kasutama% 50s. See on sama mõte.

int arv = 0;
scanf ("% 2d" ja number);
printf ("% d", arv);

Kui kasutaja läbis funktsiooni scanf () 21, siis salvestatakse number 21 muutuja arvuna. Kui kasutaja möödas midagi pikemat kui 21, st 987, salvestatakse ainult esimesed 2 numbrit - 98.

% 02d tähendus: -% 02d tuleb kasutada juhul, kui soovite, et nulljooned oleksid kahes ruumis:

printf ("% 02d:% 02d:% 02d \ n", tund, minut, teine);

Vaadake näiteks järgmist täielikku programmi:

# kaasata 
int main (tühine) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("Aeg on% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    tagasi 0;
}

mis väljundid:

Aeg on 03: 01: 04.000159

Vastus 4:

% 2d tähendus: - kui loete täisarvu (% 2d), lubab see ainult täisarvu, mis on kuni kaks numbrit. Kui peaksite lugema 50 tähemärgist massiivi, peaksite kasutama% 50s. See on sama mõte.

int arv = 0;
scanf ("% 2d" ja number);
printf ("% d", arv);

Kui kasutaja läbis funktsiooni scanf () 21, siis salvestatakse number 21 muutuja arvuna. Kui kasutaja möödas midagi pikemat kui 21, st 987, salvestatakse ainult esimesed 2 numbrit - 98.

% 02d tähendus: -% 02d tuleb kasutada juhul, kui soovite, et nulljooned oleksid kahes ruumis:

printf ("% 02d:% 02d:% 02d \ n", tund, minut, teine);

Vaadake näiteks järgmist täielikku programmi:

# kaasata 
int main (tühine) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf ("Aeg on% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd);
    tagasi 0;
}

mis väljundid:

Aeg on 03: 01: 04.000159