Problém s načítaním znakov do poľa - CČaute, viete mi poradiť, ako mám správne načítať hodnoty do poľa input? Načítavanie sa ukončí vtedy, ak pri čítaní vstupu program narazí na hodnotu 0 alebo dôjde k ukončeniu štandardného vstupu (načíta sa hodnota EOF napr. stlačením klávesovej skratky Ctrl+d). Pole je typu float. Díky moc!float input;float number;int i = 0;while(scanf(%f, &number) == 1){ if(number != 0 && number != '\n' && number != EOF){ i++; input = number; } else { break; } } scanf vracia pocet uspesne nacitanych elementov, hej?Co ti to teraz robi? Taktiež nejak divno (povedal by som zle) indexuješ. Najskôr pričítaš i a až potom zapisuješ do poľa. Malo by to byť opačne, prípadne v jednom kroku. V C sú polia indexované od nuly, takže prehoď riadkyi++;input = number; Ad pole input: Vôbec nie je potrebné používať pole pre túto časť zadaniaEDIT : Za predpokladu, že sa jedná o zadanie na TUKE, podľa toho ako ten snippet vyzerá Tie dve riadky som prehodil, ale stále to nefunguje.. Áno, je to zadanie na TUKE, ako by si to teda inak riešil? Úplne ti stačí kontrolovať súčet vstupu, a predtým skontrolovať či sa jedná o platnú mincu/bankovku (tam môžeš pole použiť, aby si nemal hľistu ako zloženú podmienku)... Dávaj ale pozor na to, že sú to desatinné čísla a ti tam môžu vznikať chyby, napr. 0 == 0.00 ti vráti false Ako to myslíš, že súčet vstupu? Tie desatinné čísla už mám ošetrené nižšie.. Ono mne to funguje, ale Arena vyhadzuje 0.. skrátka sa tam nič nenačíta alebo čo.. ...
Problém s načítaním znakov do poľa - C |