У чым розніца паміж% 2d і% 02d у мове C? У чым логіка?


адказ 1:

% 2d на мове c запаўняе лік прабелам. Колькасць павінна быць не менш за 2 знакаў:

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

Выхад "5". Звярніце ўвагу, што ёсць прастора да 5.

Калі вы паспрабуеце зрабіць нешта падобнае:

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

Выхад 454 без вядучых прабелаў.

Зараз пагаворым пра% 02d:

0 азначае, што поле застаўлена нулямі, а 2 азначае, што поле ў два знакі. Для нумароў, якія маюць менш за два знакі, ён застаўлены знакам 0.

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

выданне будзе 03

Калі вы спрабуеце зрабіць што-небудзь накшталт:

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

Выхад 345 і ніякіх вядучых нулёў не дадаецца.

Цяпер мы пераходзім да "% .6f":

Гэта азначае, што пасля дзесятковага знака выводзіцца толькі 6 лічбаў (круглыя ​​да 6 лічбаў):

паплавок х = 345,24678389; printf ("%. 6f", х);

Выхад складае 345,246784, паколькі лік на 7-й пазіцыі перавышае 5, і таму 3 акругляецца да 4.

Спадзяюся, гэта дапамагае!

Шчаслівае праграмаванне :)


адказ 2:

Значэнне% 2d: - Калі вы прачытаеце цэлае лік (% 2d), дазволена толькі цэлае лік з да двух лічбаў. Калі вы чытаеце масіў з 50 знакаў, вы павінны выкарыстоўваць% 50s. Гэта тая самая ідэя.

нумар int = 0; scanf ("% 2d", & лік); printf ("% d", лік);

Калі карыстальнік 21 быў перададзены для функцыі scanf (), лік 21 будзе захоўвацца ў пераменным колькасці. Калі карыстальнік крыху больш за 21, г.зн. Х. 987, захоўваецца толькі першыя дзве лічбы, захаваныя - 98.

Значэнне% 02d: - Вы павінны выкарыстоўваць% 02d, калі вядучыя нулі будуць застаўлены двума прабеламі:

printf ("% 02d:% 02d:% 02d \ n", гадзіна, хвіліна, секунда);

Напрыклад, глядзіце наступную поўную праграму:

#include int main (пустата) {int hh = 3, mm = 1, ss = 4, dd = 159; printf ("Час складае% 02d:% 02d:% 02d.% 06d \ n", hh, мм, ss, dd); вярнуць 0; }

якія вынікі:

Час: 03: 01: 04.000159

адказ 3:

Значэнне% 2d: - Калі вы прачытаеце цэлае лік (% 2d), дазволена толькі цэлае лік з да двух лічбаў. Калі вы чытаеце масіў з 50 знакаў, вы павінны выкарыстоўваць% 50s. Гэта тая самая ідэя.

нумар int = 0; scanf ("% 2d", & лік); printf ("% d", лік);

Калі карыстальнік 21 быў перададзены для функцыі scanf (), лік 21 будзе захоўвацца ў пераменным колькасці. Калі карыстальнік крыху больш за 21, г.зн. Х. 987, захоўваецца толькі першыя дзве лічбы, захаваныя - 98.

Значэнне% 02d: - Вы павінны выкарыстоўваць% 02d, калі вядучыя нулі будуць застаўлены двума прабеламі:

printf ("% 02d:% 02d:% 02d \ n", гадзіна, хвіліна, секунда);

Напрыклад, глядзіце наступную поўную праграму:

#include int main (пустата) {int hh = 3, mm = 1, ss = 4, dd = 159; printf ("Час складае% 02d:% 02d:% 02d.% 06d \ n", hh, мм, ss, dd); вярнуць 0; }

якія вынікі:

Час: 03: 01: 04.000159

адказ 4:

Значэнне% 2d: - Калі вы прачытаеце цэлае лік (% 2d), дазволена толькі цэлае лік з да двух лічбаў. Калі вы чытаеце масіў з 50 знакаў, вы павінны выкарыстоўваць% 50s. Гэта тая самая ідэя.

нумар int = 0; scanf ("% 2d", & лік); printf ("% d", лік);

Калі карыстальнік 21 быў перададзены для функцыі scanf (), лік 21 будзе захоўвацца ў пераменным колькасці. Калі карыстальнік крыху больш за 21, г.зн. Х. 987, захоўваецца толькі першыя дзве лічбы, захаваныя - 98.

Значэнне% 02d: - Вы павінны выкарыстоўваць% 02d, калі вядучыя нулі будуць застаўлены двума прабеламі:

printf ("% 02d:% 02d:% 02d \ n", гадзіна, хвіліна, секунда);

Напрыклад, глядзіце наступную поўную праграму:

#include int main (пустата) {int hh = 3, mm = 1, ss = 4, dd = 159; printf ("Час складае% 02d:% 02d:% 02d.% 06d \ n", hh, мм, ss, dd); вярнуць 0; }

якія вынікі:

Час: 03: 01: 04.000159