Ahoj neviem sa dostať cez jeden problem. Prejdem rovno k veci. Mam hlavnú funkciu main() a ďalšiu funkciu int skuska(char slovo[], char typ[]) a keď vyvolám v main() funkciu skuska() tak to neide ako (asi preto lebo neviem čo mam zadať do funkcii skuska(????)) ona ta funkcia zbehne ale akoby nevedela parametre poli.
#include <stdio.h> #include <stdlib.h> #include <string.h> int skuska(); int main() { char slovo[]={"ahoj"}; int n=strlen(slovo); char typ[n]; scanf("%s",typ); int p=0; p=skuska(); if(p==0) printf("UPPS"); if(p==1) printf("HURA"); return 0; } int skuska(char slovo[],char typ[]) { int i=0,a=0,b; b=strlen(slovo); for(i=0;i<b-1;i++) { if(slovo[i]!=typ[i]) { return 0; } if(slovo[i]==typ[i]) { a++; } } printf("i=%d a=%d b=%d",i,a,b); //kontrolka if(a==b-1) { return 1; } }tak asi i ja viem kde je chyba ale neviem to spraviť kontrolka vypisuje 0 0 0 takže for ani nezbehne
Nemala by mať deklarácia a definícia rovnakú signatúru?
ktorú definíciu myslíš ? ja chcem porovnať 2 slova a vysledok chcem len 1 alebo 0 su rovnaké alebo niesu rovnaké preto som použil int skuska()
Už to funguje, len som sa musel zamyslieť čo si napísal .
To je fajn, ešte sa nauč poriadne odsadzovať kód, lebo toto vyzerá hrozne.
Kde je dôležitejšia forma od obsahu, tam je volený programátorský nástroj indent.
Odsadzovanie je veľmi dôležité, bez toho každý kód stráca čitateľnosť.
Keď som sa živil programovaním, tak každý kolega používal iný typ odsadzovania. Je to ako rukopis. Môžeš na to nadávať, môžeš sa sťažovať alebo sa nad to môžeš povzniesť.
To čo je v ukážke, ale s odsadzovaním nemá nič spoločné.
čitateľnosť nadovšetko lenže to bol program na rýchlo ono ja som to potreboval použiť inde a tak som napísal dačo podobne.
Druhý krát použi ten indent. V opačnom prípade sa môže zadrapnúť niekto, čo spadá do prvých z dvoch mnou vymenovaných kategórií. A tá posledná sa delí na dva typy. Jeden typ to prečíta bez problémov, a odpovie k veci. Druhý typ to nebude násilím lúskať, a povznesie sa nad to bez odpovede.
Coding style ja sada jednoduchých pravidiel, kto nevie dodržiavať coding style nevie zrejme ani dobre programovať.
Zdrojový kód je forma. Ak nezáleží na forme prečo nepísať rovno bytecode?
Jedinou funkciou zdrojového kódu je byť čitateľný. Konzistentný kód ovplyvňuje rýchlosť čítania / pochopenia v desiatkách percent. Kód sa častejšie číta než píše, takže tá sekunda navyše pri odsadení sa niekoľkonásobne vráti pri ladení / úprave.
Ak si to naozaj odpisoval mne, tak mi skús prezradiť prečo má iné odsadzovanie jazyk C, iné zas Perl, a úplne iné Python.
A s tou čitateľnosťou, dúfam že to nepovieš doktorke. Ak niekoho nevieš pochopiť na prvý krát, tak nemusí byť chyba v ňom.
Nezáleží až tak na tom aké odsadenie je použité, dôležitejšia je konzistencia. Nekonzistentný štýl spôsobuje zníženie rýchlosti čítania kódu.
U nás vo firme nemáme nič ako rukopis. Píšeme prakticky rovnako a to vrátane takých blbostí ako poradie importov (abecedne, najkôr stdlib, potom knižnice, potom projekt).
Kvôli tej konzistencii som mu odporučil indent. I keď na jednoobrazovkový kód je jeho použitie zbytočné. Kto nevie niečo tak jednoduché prečítať a pochopiť, tak sa k tomu nevyjadrí pozitívne. A ani k veci. Takže jeho reakcia bude viac ako zbytočná.
A s tým rukopisom? Keď si zaúčaš juniora bez praxe, tak ho naučíš tvojmu rukopisu. Ale niekto čo prešiel inou školou, a ovplyvnila ho zmeska iných programovacích jazykov bude mať o dosť odlišný zápis. Ale to je už zbytočné rozoberať. Spomenul som to len kvôli tomu, že tebou spomínaný coding style je odporúčanie ktoré zo svojej podstaty nemá byť ako štandardizované. A je aj zbytočné ako informácia či ladia závesy s kobercom.
Len dodam, ze na precistenie kodu je vhodne pouzit program artistic style (ktory by mala mat kazda distribucia linuxu):
http://astyle.sourceforge.net/astyle.html#_Usagehttp://astyle.sourceforge.net/astyle.html#_Usage
Nejaky navod je mozne najst aj tu:
https://docs.google.com/document/d/1CpNNptiBGQFNJf56cTs7smoUcT8kYxZRZRQciZnZcyQ/edit?hl=enhttps://docs.google.com/document/d/1CpNNptiBGQFNJf56cTs7smoUcT8kYxZRZRQciZnZcyQ/edit?hl=en
Chyba mi tu tlačítko like ono to naozaj funguje. Dik celkom dobré to poupratovalo kod .
V reálnom kóde použi funkciu strcmp z <string.h>.
A ten kód, čo máš, nie je najlepšie/najvzornejšie napísaný.