|
Titlul: Ce-am gresit? Scris de: FMIAnita Liviu din Martie 07, 2010, 16:40:14 Salutari, in Ghid C++ pentru incepatori se prezinta cod pentru un program care imparte niste carti de joc.In carte codul arata cam asa:
Cod: #include<iostream.h> Cod: #include<iostream.h> Titlul: Răspuns: Ce-am gresit? Scris de: Cezar Mocan din Martie 07, 2010, 18:03:55 In functia "trage" e o greseala, pentru ca sirul tip are lungime 4 si tu faci tip[r], unde r apartine intervalului [0 .. 12]. Sper ca nu mai e si altceva.
Titlul: Răspuns: Ce-am gresit? Scris de: Pripoae Teodor Anton din Martie 07, 2010, 19:19:13 Ai pus s in loc de r si invers.
Titlul: Răspuns: Ce-am gresit? Scris de: creeps din Martie 07, 2010, 19:28:07 Nu văd using namespace std; pe nicăieri. Trebuie specificat și asta, ideal după ce incluzi headerele. Poate în versiunea în limba română au luat-o pe scurtătură, însă eu am cartea în engleză, iar linia asta apare. while-ul acela nu este pus degeaba. Face programul să nu se termine după ce ai introdus primul număr și ți-a dat output-ul, ci atunci când scrii 0. Fără el, îi dai, să zicem, că vrei 3 cărți, el ți le arată și iese. Cu el, vei mai putea cere alte 4 cărți și ți le va da. Și tot așa până scrii 0, iar programul își termină execuția. Iar ca specificații ce nu apar în carte, folosește header-ele specifice C++ fără .h-ul de la sfârșit (ex.: <iostream.h> devine <iostream>), iar cele din C tot fără .h, dar cu un c la început (<math.h> devine <cmath>), pentru a evita warning-urile de tip "deprecated/antique header". Și vezi că poți defini și inițializa funcția "în același timp". De exemplu, în loc să faci ca în carte (sursa 1), poți face ca în sursa a doua:
Cod: ... Cod: int o_functie(int n) {Cod: #include<iostream> Titlul: Răspuns: Ce-am gresit? Scris de: FMIAnita Liviu din Martie 07, 2010, 19:48:18 ^ folosesc MinGW,deci asta e sintaxa corecta,ceea ce ziceai tu e valabil pe Microsof Visual C++ (sau asa ceva).While-ul nu e esential in program,il face doar sa se repede,si sa se inchida daca se introduce valoarea 0,deci am ales sa renunt la el,din dorinta de a simplifica programul,si,deci,de a-mi fi mai usor sa bag la cap
^^initial schimbasem s cu r :)) dupa aia mi-am dat seama ca trebuiau schimbati intre ei vectorii care foloseau s,respectiv r,acuma merge,aia era greseala,multumesc mult ^^^ nu cred ca asta ar fi greseala,fiindca se foloseste operatorul modulo,deci chiar daca ar fi fost in multimea {1...13} tot acelasi rest ar returna. Multumesc tuturor celor care ati postat aici. Parca mi s-ar fi inmanat un oscar :)) Titlul: Răspuns: Ce-am gresit? Scris de: alexandru din Martie 08, 2010, 06:28:16 ^ folosesc MinGW,deci asta e sintaxa corecta,ceea ce ziceai tu e valabil pe Microsof Visual C++ (sau asa ceva) Defapt ce a zis @creeps este si pentru MinGW :PTitlul: Răspuns: Ce-am gresit? Scris de: CHERA Laurentiu din Martie 08, 2010, 12:15:16 Nu este gresit while(1), deoarece urmeaza break;
LE: Da, codul cum era scris mai sus, nu avea niciun sens! |