Author's photo
Anonymný autor
programovacie jazyky C

C programovanie

Zadanie znie, že máme načítať súbor, nájsť v ňom najdlhší riadok (ten, ktorý má najviac znakov) a jeho poradové číslo. Mohol by mi to nieto skontrolovať? Otváranie a zatváranie súboru viem spraviť, preto je to tu vynechané, zaujíma ma len samotný program.

Prílohy:
Question image
1 odpoveď
avatar
Zmazaný účet
Píšeš v jazyku C, ale píšeš to formou Pythonu.
Chyby, ktoré si urobil sú:
- za while(...) musia nasledovať množinové zátvorky {}, v ktorých bude obsah samotného cyklus while. Ak ich tam nemáš, cykliť sa bude len prvý riadok (resp. príkaz) za while(...)
- pre if a else platí to isté - musíš dať vetvy do závtoriek {}
- funkcia v C môže vraciať len jednu hodnotu - teda return poradove. Taktiež máš tam return, ale nie je tam začatá nijaká funkcia, tak neviem, či si ju tam len nedal alebo to je tiež časť, ktorú si rovnako ako načítanie súboru vynechal.
Ak niečo z toho, čo som napísal nie je jasné alebo chceš prekonzultovať nejaké dodatočné detaily, pokojne sa mi ozvi a vyriešime to.
Komentáre:
Anonymný autor
Ďakujem za koment. Beriem na vedomie, že return vracia iba jednu hodnotu, mňa len zaujímalo, či to takto vypočíta to, čo potrebujem, teda či je tá kostra toho programu dobrá, samozrejme zátvorky a ostatné veci mi tam chybajú, čo narobí problém, no ak ste ma pochopili, ide mi len o to.
Zmazaný účet
Jasné, rozumiem. To boli veci, čo mi hneď udreli do očí. Čo sa týka myšlienky tej funkcie, prístup je dobrý, ale chýba tam nulovanie dĺžky riadku. Ak sa c=='\n', je potrebné vynulovať "dlzka". A ešte je potrebné vytvoriť ďalšiu premennú, napr. najdlhsi_index, ktorá bude obsahovať index riadku s najväčším počtom charov. Máš tam premennú najdlhsi, ale tá obsahuje dĺžku najdlhšieho riadku. Cieľom je ale vrátiť index tohto riadku. Treba teda obe hodnoty nastaviť v if (d>najdhlsi) a vratit index
Anonymný autor
Ďakujem :)