Titlul: De ce nu-mi merge programul din topic in C++? Scris de: Adam Cristian din Octombrie 19, 2013, 19:15:52 Acesta este programul, mai exact algorimtul fundamental de primalitate
#include <fstream> using namespace std; ifstream fin("primalitate.in"); ofstream fout("primalitate.out"); int n,i,prim; int main() { fin>>n; prim=1; if(n==0||n==1) prim=0; else for(i=2;i<=n/2;i++) if(n%i==0) prim=0; if(n%i!=0) prim=1; fout<<"Numarul este prim"; else fout<<"Numarul nu este prim"; fin.close(); fout.close(); return 0; } Vreau sa stiu de ce nu merge, deoarece de randul cu else fout imi apare o eroare spunandu-mi ca trebuie sa scriu in fata lui else if. Cand fac acest lucru imi spune ca este incorect ceea ce am scris. Va rog mult daca ar putea cineva sa ma ajute si pe mine ca sa inteleg si eu unde am gresit Titlul: Răspuns: De ce nu-mi merge programul din topic in C++? Scris de: Dinu Radu din Octombrie 19, 2013, 20:07:29 Cod: if(n%i!=0) prim=1; Primul if nu prea are sens , tu ai facut verificarea in primul for , deci trebuie eliminat. Iti da eroarea pentru ca else-ul tau nu e corespondent niciunui if. Tu trebuie sa verifici daca variabila prim este egala cu 1.In caz afirmativ afisezi ca nr e prim altfel afisezi mesajul ca nu e prim. deci : Cod: if (prim==1) P.S nu e nevoie sa testezi divizorii decat pana la radical din n si e si mult mai rapid. Titlul: Răspuns: De ce nu-mi merge programul din topic in C++? Scris de: Adam Cristian din Octombrie 19, 2013, 20:32:53 Cod: if(n%i!=0) prim=1; Primul if nu prea are sens , tu ai facut verificarea in primul for , deci trebuie eliminat. Iti da eroarea pentru ca else-ul tau nu e corespondent niciunui if. Tu trebuie sa verifici daca variabila prim este egala cu 1.In caz afirmativ afisezi ca nr e prim altfel afisezi mesajul ca nu e prim. deci : Cod: if (prim==1) P.S nu e nevoie sa testezi divizorii decat pana la radical din n si e si mult mai rapid. Am incercat cum mi-ai spus tu si tot mi-a dat aceeasi eroare cum ca trebuie sa adaug if in fata lui else Titlul: Răspuns: De ce nu-mi merge programul din topic in C++? Scris de: Andrei din Octombrie 19, 2013, 22:31:17 hei :)
incearca sa folosesti niste acolade, se observa mai usor blocurile de cod. Incearca asta #include <fstream> using namespace std; ifstream fin("primalitate.in"); ofstream fout("primalitate.out"); int n,i,prim; int main() { fin>>n; prim=1; if(n==0||n==1) prim=0; else { for(i=2;i<=n/2;i++) { if(n%i==0) prim=0; else prim=1; } if(prim==1) fout<<"Numarul este prim"; else fout<<"Numarul nu este prim"; } fin.close(); fout.close(); return 0; } Titlul: Răspuns: De ce nu-mi merge programul din topic in C++? Scris de: Adam Cristian din Octombrie 20, 2013, 07:26:22 hei :) Ms pt ajutor, Andreiincearca sa folosesti niste acolade, se observa mai usor blocurile de cod. Incearca asta #include <fstream> using namespace std; ifstream fin("primalitate.in"); ofstream fout("primalitate.out"); int n,i,prim; int main() { fin>>n; prim=1; if(n==0||n==1) prim=0; else { for(i=2;i<=n/2;i++) { if(n%i==0) prim=0; else prim=1; } if(prim==1) fout<<"Numarul este prim"; else fout<<"Numarul nu este prim"; } fin.close(); fout.close(); return 0; } |