Informatică, întrebare adresată de Angero7, 9 ani în urmă

Am facut o functie in C care calculeaza un aranjament si vreau sa stiu cum sa fac ca atunci cand nu se respecta conditia la "if" programul sa nu mai returneze valoarea, ci doar mesajul. (M-am apucat de programare acum o saptamana)

Anexe:

Razzvy: Functia ta ori returneaza ceva, ori o faci void si nu returneaza nimic. Ai doua variante: o faci void, si in loc de return(a) pui printf("Aranjamentul este %d", a);, sau faci ca funtia sa returneze o valoare aparte, cum ar fi -1(deoarece nu exista aranjamente care sa fie egale cu -1), iar in main spui if(araj != -1) printf("Arajamentul este"...; else printf("nm nu sunt bune\n");

Răspunsuri la întrebare

Răspuns de Seckar
1
In C nu ai cum sa ai o functie care uneori returneaza alteori nu retunreaza nimic. In C daca o functie este de tipul void atunci nu retunreaza niciodata, daca este de orice alt tip atunci TREBUIE sa returneze ceva. Ca sa semnalezi ca nu s-a retunrat o valoare buna poti sa retunrezi ceva gen -1 si apoi in main verifici daca functia ta o returnat -1(adica daca nu a produs valoarea buna).

Daca vrei sa ai functii care uneori returneaza alteori nu iti recomand un limbaj mai comod de folosit cum ar fi Python, nu C.

Dupa ce vei invatat mai multe chestii vei putea si in C sa faci ca o functie uneori sa nu retunreze cu ajutorul mecanismului de exceptii, dar pana atunci nu prea ai ce face. Iar exceptii nu iti recomand sa cauti pana nu stii ce sunt alea clase, derivare, polimorfism, overload si override.
Alte întrebări interesante