Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
prosim poradte:
dostal jsem to včera na progarmovani,nedostal žadne vysvetleni,jen že to mam udělat v C.
3. Napište program, který přečte posloupnost celých čísel délky n (n je dáno vstupními daty) a vypíše největší a nejmenší číslo.
4. Napište program, který přečte posloupnost kladných celých čísel zakončenou nekladným číslem a vypíše největší a nejmenší číslo.
Mohl by mi to tu někdo napsat?
Diky moc
Offline

zavedeš si dvě proměnné int min=0xffffffff/2, max=0-0xffffffff/2;
3. pomocí for cyklu načítáš čísla ze vstupu a testuješ:
if(cislo<min)
min=cislo;
if(cislo>max)
max=cislo;
4. Stejně jenom použiješ cyklus do-while s podmínkou číslo > 0
Je fakt jednoduché, jen se trochu zamyslet.
--------------
ot: že ty jseš na všpj?
Offline

EDIT: Díky Glatiatorce za řešení.
Příště prosím trochu podrobněji naznačit, v čem je problém, viz http://forum.matweb.cz/misc.php?action=rules (zejména "Nejsme automat na řešení domácích úkolů")
Jinak dobrý zdroj pro studium C je http://cppreference.com/wiki/
Ať se daří.
Offline
↑ DeMidix:
já taky ne, ale pokud jsi dělal v nějakém jiném jazyku, tak zas takový problém snad není googlovat a najít si nějaké základy o programování v céčku... je toho plný internet...
ale jestli jsi se o něco pokoušel tak to chápu že sis už nevěděl rady... taky se mi to stalo...
↑ gladiator01:
prosimtě co to je za identifikaci? takovou neznám:-o
Offline

↑ VojtechSejkora:
Nechápu.
Offline
↑ gladiator01:
int min=0xffffffff/2, max=0-0xffffffff/2;
to s tím hexadecimálním zápisem vidím prvně... a k čemu je to dobré? to je jako maximální/minimální možné číslo bo co?:-o
Offline
Ty hexa konstanty nejsou dobrý nápad hned z několika důvodů:
1) 0-0xffffffff/2 = -2147483647 ale 32 bitový int má minimum -2147483648
2) Velikost intu není zaručená, na 64 bitových procesorech 0xffffffff zdaleka nestačí, je to nepřenosné
3) Není jasné, co tím chtěl autor říct/udělat.
Stejná myšlenka se dá realizovat lépe pomocí INT_MAX z limits.h, nebo jednoduše jako min i max nastavím na začátku to první číslo.
Offline

↑ DeMidix:
Není to špatně, jen Fauſt a ondrouchd jsou puntičkáři.
Aby mně neukamenovali, tak napiš co píše fault.
vlož si knihovnu limits: #include <limits.h>
int min=INT_MAX, max=INT_MAX;
int cislo;zbytek jako nahoře: pro 3. takto:
načteš do n počet čísel posloupnosti (+ přidej nějaký popis, aby uživatel věděl co zrovna píše)
scanf("%d",&n);
a načítáš čísla:
for(i=0;i<n;i++)
{
scanf("%d",&cislo);
if(cislo<min)
min=cislo;
if(cislo>max)
max=cislo;
}pro 4.
Začátek jako ve 3.
do{
scanf("%d",&cislo);
if(cislo<min)
min=cislo;
if(cislo>max)
max=cislo;
}while(cislo>0)A vypíšeš.
↑ Fauſt:
Tohle jsem si nevymyslela, takhle to použil (u tohoto příkladu) cvičící, tak jsem předpokládala, že to je dostačující. Příště budu přemýšlet než něco opíši.
2) Velikost intu není zaručená, na 64 bitových procesorech 0xffffffff zdaleka nestačí, je to nepřenosné
autor má programování zhruba měsíc, tak bych přenositelnost moc nezkoumala, hlavně když není schopný udělat ani takovýto primitivní program
int min=0xffffffff/2, max=0-0xffffffff/2;
Co asi, chceme co největší a nejmenší čísla, takhle to je snad přehlednější než než nějaká hausnumera v desítkové soustavě.
knihovnu limits.h neznám
Offline
↑ gladiator01:
no mě příjde daleko přirozenější tam napsat INT_MAXVALUE a INT_MINVALUE... ale už alespoň konečně vím o co se jedná:)
Offline

↑ VojtechSejkora:
Samozřejmě, že to vypadá lépe, ale říkam, že jsem to (tu knihovnu limits.h) neznala, tak sem to nemohla napsat, ne?
Offline