Kuo skiriasi% 2d ir% 02d C kalba? Kokia logika?


Atsakymas 1:

% 2d c kalbų lentelėse užpildo numerį su tuščia vieta. Skaičius turėtų būti sudarytas iš mažiau nei 2 simbolių:

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

išvestis bus „5“, atminkite, kad prieš 5 nėra tuščios vietos.

Jei bandysite padaryti kažką panašaus:

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

išėjimas bus 454 be jokių tarpų.

dabar pakalbėkime apie% 02d:

„0“ reiškia lauko užpildymą, naudojant nulius, o 2 reiškia, kad laukas yra dviejų simbolių pločio, taigi, jei skaitmenys rodo mažiau nei 2 simbolius, jis bus pažymėtas ženklu 0.

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

išeiga bus 03

jei bandysite padaryti kažką panašaus:

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

išvestis bus 345, o nuliniai nuliai nebus pridedami.

Dabar pažvelkime į „% .6f“:

Tai reiškia, kad bus išvesti tik 6 skaitmenys po kablelio (suapvalinti iki 6 vietų):

plūdės x = 345,24678389;
printf („%. 6f“, x);

išvestis bus 345,246784, nes 7-oje pozicijoje skaičius yra didesnis nei 5, taigi jis suapvalinamas nuo 3 iki 4.

Tikiuosi tai padės !

laimingas kodavimas :)


Atsakymas 2:

Reikšmė% 2d: —kai skaitote sveiką skaičių (% 2d), jis leis tik sveiką skaičių iki dviejų skaitmenų. Jei skaitytumėte 50 simbolių ilgio masyvą, turėtumėte naudoti% 50s. Tai ta pati mintis.

int skaičius = 0;
„scanf“ („% 2d“, ir skaičius);
printf („% d“, skaičius);

Jei vartotojas išlaikė 21 funkciją „scanf“ (), skaičius 21 būtų išsaugotas kintamajame. Jei vartotojas praeitų daugiau nei 21, t. Y. 987, būtų išsaugoti tik pirmieji 2 skaitmenys - 98.

Reikšmė% 02d: - Jei norite, kad nuliai, įklijuoti į dvi tarpus, turėtų būti% 02d, turite naudoti% 02d:

printf („% 02d:% 02d:% 02d \ n“, valanda, minutė, antra);

Žr., Pavyzdžiui, šią išsamią programą:

# įtraukti 
int pagrindinis (negaliojantis) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf („Laikas yra% 02d:% 02d:% 02d.% 06d \ n“, hh, mm, ss, dd);
    grįžti 0;
}

kurie išveda:

Laikas yra 03: 01: 04.000159

Atsakymas 3:

Reikšmė% 2d: —kai skaitote sveiką skaičių (% 2d), jis leis tik sveiką skaičių iki dviejų skaitmenų. Jei skaitytumėte 50 simbolių ilgio masyvą, turėtumėte naudoti% 50s. Tai ta pati mintis.

int skaičius = 0;
„scanf“ („% 2d“, ir skaičius);
printf („% d“, skaičius);

Jei vartotojas išlaikė 21 funkciją „scanf“ (), skaičius 21 būtų išsaugotas kintamajame. Jei vartotojas praeitų daugiau nei 21, t. Y. 987, būtų išsaugoti tik pirmieji 2 skaitmenys - 98.

Reikšmė% 02d: - Jei norite, kad nuliai, įklijuoti į dvi tarpus, turėtų būti% 02d, turite naudoti% 02d:

printf („% 02d:% 02d:% 02d \ n“, valanda, minutė, antra);

Žr., Pavyzdžiui, šią išsamią programą:

# įtraukti 
int pagrindinis (negaliojantis) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf („Laikas yra% 02d:% 02d:% 02d.% 06d \ n“, hh, mm, ss, dd);
    grįžti 0;
}

kurie išveda:

Laikas yra 03: 01: 04.000159

Atsakymas 4:

Reikšmė% 2d: —kai skaitote sveiką skaičių (% 2d), jis leis tik sveiką skaičių iki dviejų skaitmenų. Jei skaitytumėte 50 simbolių ilgio masyvą, turėtumėte naudoti% 50s. Tai ta pati mintis.

int skaičius = 0;
„scanf“ („% 2d“, ir skaičius);
printf („% d“, skaičius);

Jei vartotojas išlaikė 21 funkciją „scanf“ (), skaičius 21 būtų išsaugotas kintamajame. Jei vartotojas praeitų daugiau nei 21, t. Y. 987, būtų išsaugoti tik pirmieji 2 skaitmenys - 98.

Reikšmė% 02d: - Jei norite, kad nuliai, įklijuoti į dvi tarpus, turėtų būti% 02d, turite naudoti% 02d:

printf („% 02d:% 02d:% 02d \ n“, valanda, minutė, antra);

Žr., Pavyzdžiui, šią išsamią programą:

# įtraukti 
int pagrindinis (negaliojantis) {
    int hh = 3, mm = 1, ss = 4, dd = 159;
    printf („Laikas yra% 02d:% 02d:% 02d.% 06d \ n“, hh, mm, ss, dd);
    grįžti 0;
}

kurie išveda:

Laikas yra 03: 01: 04.000159