Hver er munurinn á% 2d og% 02d í tungumálinu C? Hver er rökfræðin?


svara 1:

% 2d í tungumál c fyllir töluna með bili. Númerið ætti að vera minna en 2 stafir að lengd:

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

Útgangurinn er „5“. Athugið að það er bil fyrir 5.

Ef þú reynir að gera eitthvað svona:

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

Útgangurinn er 454 án leiðandi rýma.

Nú skulum við tala um% 02d:

0 þýðir að svæðið er bólstrað með núllum og 2 þýðir að svæðið er tveir stafir á breidd. Fyrir tölur með minna en 2 stafi er það fóðrað með 0.

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

útgáfan verður 03

Þegar þú reynir að gera eitthvað eins og:

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

Útgangurinn er 345 og engin leiðandi núll bætt við.

Nú erum við komin að "% .6f":

Þetta þýðir að aðeins 6 tölustafir eru gefnir út eftir aukastaf (auk allt að 6 tölustafir):

fljóta x = 345.24678389; printf ("%. 6f", x);

Úttakið er 345.246784, vegna þess að fjöldinn í 7. stöðunni er meiri en 5 og því er 3 gerður í 4.

Vona að þetta hjálpi!

Sæl forritun :)


svara 2:

Merking% 2d: - Ef þú lesir heiltölu (% 2d) er aðeins heiltala með allt að tveimur tölustöfum leyfð. Ef þú ert að lesa fjölda af 50 stöfum ættirðu að nota% 50s. Það er sama hugmyndin.

int tala = 0; scanf ("% 2d", & tala); printf ("% d", tala);

Ef notandi 21 var látinn fara fyrir scanf () aðgerðina, væri númer 21 geymt í breytu númerinu. Ef notandinn er aðeins lengri en 21, þ.e.a.s. H. 987, aðeins fyrstu tvær tölurnar eru vistaðar - 98.

Merking% 02d: - Þú verður að nota% 02d ef leiðandi núll eiga að vera padded með tveimur bilum:

printf ("% 02d:% 02d:% 02d \ n", klukkustund, mínúta, sekúndu);

Sjá til dæmis eftirfarandi forrit í heild sinni:

# innifalið int aðal (ógilt) {int hh = 3, mm = 1, ss = 4, dd = 159; printf ("Tíminn er% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd); skila 0; }

hvaða framleiðsla:

Tíminn er 03: 01: 04.000159

svara 3:

Merking% 2d: - Ef þú lesir heiltölu (% 2d) er aðeins heiltala með allt að tveimur tölustöfum leyfð. Ef þú ert að lesa fjölda af 50 stöfum ættirðu að nota% 50s. Það er sama hugmyndin.

int tala = 0; scanf ("% 2d", & tala); printf ("% d", tala);

Ef notandi 21 var látinn fara fyrir scanf () aðgerðina, væri númer 21 geymt í breytu númerinu. Ef notandinn er aðeins lengri en 21, þ.e.a.s. H. 987, aðeins fyrstu tvær tölurnar eru vistaðar - 98.

Merking% 02d: - Þú verður að nota% 02d ef leiðandi núll eiga að vera padded með tveimur bilum:

printf ("% 02d:% 02d:% 02d \ n", klukkustund, mínúta, sekúndu);

Sjá til dæmis eftirfarandi forrit í heild sinni:

# innifalið int aðal (ógilt) {int hh = 3, mm = 1, ss = 4, dd = 159; printf ("Tíminn er% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd); skila 0; }

hvaða framleiðsla:

Tíminn er 03: 01: 04.000159

svara 4:

Merking% 2d: - Ef þú lesir heiltölu (% 2d) er aðeins heiltala með allt að tveimur tölustöfum leyfð. Ef þú ert að lesa fjölda af 50 stöfum ættirðu að nota% 50s. Það er sama hugmyndin.

int tala = 0; scanf ("% 2d", & tala); printf ("% d", tala);

Ef notandi 21 var látinn fara fyrir scanf () aðgerðina, væri númer 21 geymt í breytu númerinu. Ef notandinn er aðeins lengri en 21, þ.e.a.s. H. 987, aðeins fyrstu tvær tölurnar eru vistaðar - 98.

Merking% 02d: - Þú verður að nota% 02d ef leiðandi núll eiga að vera padded með tveimur bilum:

printf ("% 02d:% 02d:% 02d \ n", klukkustund, mínúta, sekúndu);

Sjá til dæmis eftirfarandi forrit í heild sinni:

# innifalið int aðal (ógilt) {int hh = 3, mm = 1, ss = 4, dd = 159; printf ("Tíminn er% 02d:% 02d:% 02d.% 06d \ n", hh, mm, ss, dd); skila 0; }

hvaða framleiðsla:

Tíminn er 03: 01: 04.000159