Posloupnost – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Posloupnost – C / C++ – Fórum – Programujte.comPosloupnost – C / C++ – Fórum – Programujte.com

 

Janek
~ Anonymní uživatel
56 příspěvků
9. 3. 2021   #1
-
0
-

Dobrý den, dostal jsem za úkol následující: Na vstupu je posloupnost kladných reálných čísel zakončená číslem záporným. Načtěte minimálně dva prvky. Vypište druhý nejmenší prvek a jeho pořadí. 

Skoncil jsem tady, a z nejakeho duvodu mi nefunguje break. Prosim o doplneni nebo opraveni kodu a pripadne vysvetleni.

Dekuji


int realnecislo = 10
; while (true);
cout << "tento program skončí u prvního záporného čísla" << realnecislo << endl;
if (realnecislo == -1){
break;
}
realnecislo--;
}

Nahlásit jako SPAM
IP: 77.242.86.–
gna
~ Anonymní uživatel
1891 příspěvků
10. 3. 2021   #2
-
0
-

 Máš za while středník.

while (true) // opakuj donekonečna
    ; // nic
// sem to nikdy nedojde
Nahlásit jako SPAM
IP: 213.211.51.–
Janek
~ Anonymní uživatel
56 příspěvků
10. 3. 2021   #3
-
0
-

#2 gna
Ale v tom mi visual studio chybu nenaslo. Byl problém v tom breaku.

Nahlásit jako SPAM
IP: 77.242.86.–
gna
~ Anonymní uživatel
1891 příspěvků
10. 3. 2021   #4
-
0
-

Pokud je ten break mimo cyklus, tak je to syntaktická chyba.

Nahlásit jako SPAM
IP: 213.211.51.–
Janek
~ Anonymní uživatel
56 příspěvků
10. 3. 2021   #5
-
0
-

#4 gna
a vedel by jste jak napsat tento program, tak aby fungoval tak jak má a nebyla tam žádná syntaktická chyba ? 

#2 gna
 

Nahlásit jako SPAM
IP: 77.242.86.–
gna
~ Anonymní uživatel
1891 příspěvků
10. 3. 2021   #6
-
0
-

No problém je v tom středníku, ten break musí být v těle cyklu:

while (...) {
    ...
    break;
}

A konkrétně na toto break nepotřebuješ. 

int cislo;
// dokud se podařilo načíst číslo a není to záporné číslo
while (cin >> cislo && cislo >= 0) {
    // něco dělej
    cout << cislo << "\n";
}
Nahlásit jako SPAM
IP: 213.211.51.–
KIIV
~ Moderátor
+43
God of flame
9. 4. 2021   #7
-
0
-

Mimochodem int neni realne cislo.

Videl bych to nejak takto:

#include <iostream>
#include <map>

int main()
{
    std::map<double, int> pozice;

    double cislo;
    int index = 0;
    while ((std::cin >> cislo) && (cislo >= 0)) {
        pozice.emplace(cislo, index++);
    }

    if (pozice.size() < 2) {
        std::cerr << "Malo cisel!\n";
        return 1;
    }

    auto iter = ++pozice.begin(); // vemem prvni pozici a posuneme se o jednu dal

    std::cout << "Druhe nejmensi je: " << iter->first << " na indexu: " << iter->second << "\n";

    return 0;
}

Ale samozrejme to neni nejefektivnejsi varianta. Jen se mi to nechtelo resit rucne

Nahlásit jako SPAM
IP: 37.48.26.–
Program vždy dělá to co naprogramujete, ne to co chcete...
9. 4. 2021   #8
-
0
-

#7 KIIV
Budu za hnidopicha: celá čísla jsou podmožinou čísel reálných. Z toho by se dalo odvodit, že int je reálné číslo. Jenže, do int lnelze uložit jakékoliv reálně číslo, jde uložit pouze číslo celé.

hu

Nahlásit jako SPAM
IP: 193.86.81.–
KIIV
~ Moderátor
+43
God of flame
10. 4. 2021   #9
-
0
-

#8 hlucheucho
jop to je pravda, bral sem to z programatorskeho hlediska, kde samozrejme ani do intu ci float/double nelze ulozit libovolne cele nebo realne cislo.

Nicmene kdyz ctu "realne cislo" tak posledni co si zacnu predstavovat je neco bez desetinne carky.

Nahlásit jako SPAM
IP: 37.48.26.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 132 hostů

Podobná vlákna

Posloupnost — založil Twiggy

Posloupnost — založil Marek

Posloupnost — založil Pavlik

Posloupnost — založil Motoblanco

Fibonacciho posloupnost — založil lenula

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý