•SpiderMan
|
 |
« Răspunde #125 : Iunie 11, 2011, 21:34:31 » |
|
Daca te-ai uita, la surse trimise Alexandru Meterez a pus bine numele fiserelor  .
|
|
|
Memorat
|
|
|
|
•DaNutZ2UuU
Strain
Karma: -7
Deconectat
Mesaje: 12
|
 |
« Răspunde #126 : Februarie 11, 2012, 14:16:36 » |
|
Am facut problema; si merge struna la mn... si cand o pun- eroare de compilare--> Eroare de compilare: user.cpp: In function ‘int main()’: user.cpp:11: error: ‘strlen’ was not declared in this scope care-i faza? 
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #127 : Februarie 11, 2012, 14:31:41 » |
|
Strlen este o functie prestabilita care este localizata in headerul cstring. Adica daca ai adauga # include <cstring> ar trebui sa mearga  .
|
|
|
Memorat
|
|
|
|
•originalalex
Strain
Karma: 0
Deconectat
Mesaje: 1
|
 |
« Răspunde #128 : Martie 01, 2012, 20:17:27 » |
|
imi poate spune cineva de ce pe o solutie ca asta iau TLE ?
[cide] program text1; var c:string[1]; f,g:text; nr,cuv,k:integer; begin assign(f,'text.in'); reset(f); assign(g,'text.out'); rewrite(g); nr:=0 ; cuv:=0 ; k:=1; while not(eof(f)) do begin read(f,c); if ((c>='A') and (c<='Z')) or ((c>='a') and (c<='z')) then begin k:=0; nr:=nr+1; end else if k=0 then begin cuv:=cuv+1; k:=1; end; end; write(g,nr div cuv); close(f); close(g); end.
Editat de admin: Foloseste tagul "code" cand postezi surse.
|
|
« Ultima modificare: Martie 02, 2012, 10:04:13 de către Andrei Grigorean »
|
Memorat
|
|
|
|
•PlayLikeNeverB4
|
 |
« Răspunde #129 : Martie 01, 2012, 20:34:59 » |
|
Fiindca e ineficienta  Incearca sa citesti textul pe bucati.
|
|
|
Memorat
|
|
|
|
•alex_unix
Strain
Karma: 22
Deconectat
Mesaje: 46
|
 |
« Răspunde #130 : Aprilie 12, 2012, 09:46:23 » |
|
Am facut in C++ citirea fara buffer, apoi am parcurs ce am citit. E mai eficient asa cand ai foarte mult de citit 
|
|
|
Memorat
|
|
|
|
•vatavu_oana
Strain
Karma: 0
Deconectat
Mesaje: 1
|
 |
« Răspunde #131 : Aprilie 26, 2012, 22:27:03 » |
|
Pentru problema "Text": Solutia mea: #include<fstream> #include<iostream> #include<string.h> using namespace std; ifstream f("o.in"); ofstream g("o.out"); int k=0,nr=0,i; char *p,a[256]="",b[11]=" -:.;',?! "; int main() { f.getline(a,100); while(a[0]=='-'||a[0]=='"'||a[0]==' ') strcpy(a,a+1); p=strtok(a,b); while(p) {cout<<p<<endl; nr+=strlen(p); k++; p=strtok(NULL,b); } if(k) g<<(int)nr/k<<' '<<nr<<' '<<k; f.close(); g.close(); return 0; }
De ce nu imi ia nici un test? Editat de moderator: Foloseste tagul [ code ] cand postezi cod.
|
|
« Ultima modificare: Aprilie 27, 2012, 00:05:17 de către Gabriel Bitis »
|
Memorat
|
|
|
|
•darkseeker
|
 |
« Răspunde #132 : Aprilie 26, 2012, 23:17:10 » |
|
O prima greseala este ca citesti doar 100 de caractere iar inputul poate avea undeva la 1.000.000 de caractere . Declara vectorul mai mare si mareste numarul de caractere citite .
|
|
|
Memorat
|
|
|
|
•klamathix
|
 |
« Răspunde #133 : Aprilie 26, 2012, 23:24:09 » |
|
Si fisierele sunt gresite.
|
|
|
Memorat
|
|
|
|
•Anduu
Strain
Karma: -2
Deconectat
Mesaje: 7
|
 |
« Răspunde #134 : Martie 23, 2013, 17:25:55 » |
|
Intrebare... Textul poate avea si alineate? Adica trebuie sa iau in considerare si new line? Eu unul opresc executia cand dau de caracterul new line.
|
|
|
Memorat
|
|
|
|
•repp4radu
|
 |
« Răspunde #135 : Martie 23, 2013, 18:42:42 » |
|
"Pe prima linie a fisierului de intrare text.in se gaseste textul dat."
Totul este pe o linie in fisierul de intrare.
|
|
|
Memorat
|
|
|
|
•arminvandexter
Strain
Karma: -3
Deconectat
Mesaje: 3
|
 |
« Răspunde #136 : Octombrie 26, 2013, 20:11:29 » |
|
Salut tocmai am facut problema dar imi spune ca nu este buna.Vedeti careva vreo greseala ? #include <iostream> #include <fstream> #include <string> using namespace std; int main() {ifstream f("text.in"); ofstream g("text.out"); char s[256]; unsigned i,n=0,m=0,k; f.get(s,256); for(i=0;i<strlen(s);i++) {if(s<='z' && 'a'<=s || 'A'<=s && s<='Z') n=n+1; if(s==' ') m=m+1; if(s=='-') if((s[i-1]<='z'&& 'a'<=s[i-1] || 'A'<=s[i-1] && 'Z'<=s[i-1])&&(s[i+1]<='z'&& 'a'<=s[i+1] || 'A'<=s[i+1] && 'Z'<=s[i+1])) m=m+1;} k=(int)n/m; g<<k;}
|
|
|
Memorat
|
|
|
|
•PlayLikeNeverB4
|
 |
« Răspunde #137 : Octombrie 27, 2013, 09:55:28 » |
|
Ai eroare de compilare. Ai nevoie de <string.h>.
|
|
|
Memorat
|
|
|
|
•Sagunistu
Strain
Karma: 0
Deconectat
Mesaje: 7
|
 |
« Răspunde #138 : Noiembrie 01, 2013, 22:36:24 » |
|
De ce nu merge sa citesc tot sirul inainte si apoi sa-l parcurg? Acesta este codul: #include <iostream> #include <fstream> #include <cstring> #include <cctype>
using namespace std; char a[1100010]; int main() { ifstream fin("text.in"); ofstream fout("text.out"); int i; fin.getline(a,1100000); int n=strlen(a); int s=0,k=0,ok=1; for(i=0;i<n;i++) { if(isalpha(a[i])) { s++; if(ok) k++,ok=0; } else ok=1; } fout<<s/k; return 0; }
Daca il fac identic, doar ca il citesc caracter cu caracter functioneaza. Multumesc anticipat.
|
|
|
Memorat
|
|
|
|
•Paaaulica
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #139 : Noiembrie 06, 2013, 13:16:48 » |
|
De ce nu merge sa citesc tot sirul inainte si apoi sa-l parcurg? Acesta este codul: #include <iostream> #include <fstream> #include <cstring> #include <cctype>
using namespace std; char a[1100010]; int main() { ifstream fin("text.in"); ofstream fout("text.out"); int i; fin.getline(a,1100000); int n=strlen(a); int s=0,k=0,ok=1; for(i=0;i<n;i++) { if(isalpha(a[i])) { s++; if(ok) k++,ok=0; } else ok=1; } fout<<s/k; return 0; }
Daca il fac identic, doar ca il citesc caracter cu caracter functioneaza. Multumesc anticipat. Pentru ca pui in vectorul a linia 1100000. http://www.dreamincode.net/forums/topic/127452-converting-ifstream-to-char-array/Dar nu fa asa, e foarte aiurea, si ineficient :p Rezolvarea mea (100 p) #include <iostream> #include <fstream> using namespace std;
int e_litera(char a) { if((a>=65 && a<=90) || (a>=97 && a<=122) ) return 1;
return 0; } int main() { int nrcuvinte=0; int nrlitere=0; ifstream cit("text.in"); char c; char lastChar=0; while(cit>> noskipws >>c) {
if(e_litera(c)) nrlitere++;
if(lastChar!=0) { if(!e_litera(c) && e_litera(lastChar)) nrcuvinte++; } lastChar=c;
} ofstream cut("text.out"); cut<<nrlitere/nrcuvinte; cut.close(); cit.close();
return 0; }
|
|
|
Memorat
|
|
|
|
•G_David
Strain
Karma: 0
Deconectat
Mesaje: 1
|
 |
« Răspunde #140 : Decembrie 22, 2013, 16:33:18 » |
|
Va rog... nu inteleg de ce nu functioneaza sursa asta... Uita-ti fragmentul din sursa: n - nr de cuvinte l - nr de litere getline(infile, str); len = str.length() - 1; for (i = 0; i <= len; i += 1) { if (isalpha(str[i])) { l++; if (!(isalpha(str[i + 1]))) { n++; } } }
M-am gandit ca daca caracterul e litera, atunci adauga 1 la litere. Si daca urmatorul caracter nu mai e litera, atunci inseamna ca s-a termiant cuvantul, deci adauga 1 la cuvinte. Un exemplu de propozitie care nu o face corect v-as ruga sa imi dati...
|
|
|
Memorat
|
|
|
|
•PlayLikeNeverB4
|
 |
« Răspunde #141 : Decembrie 22, 2013, 22:12:06 » |
|
Ar fi bine sa declari stringul global. (cred ca asa scapi de KBS)
|
|
|
Memorat
|
|
|
|
•Pateu69
Strain
Karma: 0
Deconectat
Mesaje: 2
|
 |
« Răspunde #142 : Mai 07, 2014, 22:18:53 » |
|
Buna! Ma puteti ajuta, va rog?  Omit ceva, sau am gresit ceva, pentru ca nu pot lua punctaj maxim. Mi-ati putea da, va rog, un indiciu ?  int main() { while(fin.get(s,2)) { if((s >='a'&&s<='z')||(s>='A'&&s<='Z')) //verifica daca e litera {litere++; sw=1;} else if(sw==1) {cuvinte++; sw=0;} //verifica daca e cuvant }
if(sw==1) cuvinte++; fout<<litere/cuvinte; return 0; }
|
|
|
Memorat
|
|
|
|
•vladandrei
Strain
Karma: 0
Deconectat
Mesaje: 3
|
 |
« Răspunde #143 : Mai 01, 2015, 22:11:22 » |
|
Salut! Ma puteti ajuta va rog? Nu stiu de ce primesc WA la 3 teste (printre care si primul) Ideea mea este relativ simpla, citesc caracter cu caracter, daca gasesc o litera si inainte era simbol am gasit un cuvant nou, daca nu, creste doar nr de litere. Codul este urmatorul #include <fstream> #include <string.h> using namespace std; ifstream f ("text.in"); ofstream g ("text.out"); int main(){ char x; int ok = 0, lungime = 0, cuvinte = 0; while (f >> noskipws >> x){ if (!isalpha(x)){ ok = 1; } else if (isalpha(x)){ lungime++; if (ok){ cuvinte++; ok = 0;
} } } if (cuvinte > 0) g << lungime/cuvinte; else g << "0"; f.close(); g.close();
} Multumesc  . LE: Acum ca ma gandesc, cred ca problema e ca textul poate fi pe mai multe linii si programul meu se opreste la primul rand. In acest sens problema poate fi rezolvata cu stream si citit caracter cu caracter, sau trebuie cu get sa memorez toate caracterele intr-un char[] ?
|
|
« Ultima modificare: Mai 01, 2015, 22:23:46 de către fabbbyyy »
|
Memorat
|
|
|
|
•gavrisraul
Strain
Karma: 0
Deconectat
Mesaje: 11
|
 |
« Răspunde #144 : Octombrie 25, 2015, 10:16:37 » |
|
salut  de ce imi arata "in asteptare" la evaluator?deja de ieri
|
|
|
Memorat
|
|
|
|
•ancawtblife
Strain
Karma: 0
Deconectat
Mesaje: 1
|
 |
« Răspunde #145 : Noiembrie 20, 2015, 14:38:07 » |
|
Pot vedea undeva testele? Am incercat sa numar cuvintele fara sa ma folosesc de functii precum isspace etc, si ar trebui dpdv logic sa mearga, dar imi da wrong answers si killed by signals. Multumesc.
|
|
|
Memorat
|
|
|
|
•vladrochian
Strain
Karma: 25
Deconectat
Mesaje: 29
|
 |
« Răspunde #146 : August 09, 2016, 10:33:45 » |
|
|
|
« Ultima modificare: August 09, 2016, 10:39:03 de către Vlad Rochian »
|
Memorat
|
|
|
|
•Bodo171
Client obisnuit

Karma: 11
Deconectat
Mesaje: 52
|
 |
« Răspunde #147 : Noiembrie 24, 2016, 21:46:49 » |
|
Mi se pare ca e ceva ciudat. Am trecut de la 40 la 100 inlocuind cu si nu am vazut sa ia cineva 100 cu functia de citire a unei singure linii(scuzati-ma daca gresesc).Din cate am verificat functia getline() nu ar trebui sa fie restrictionata de vreo dimensiune mai mica decat cea a testelor.Cred ca testele nu respecta(in totalitate) restrictia ca textul se afla pe prima linie.
|
|
« Ultima modificare: Noiembrie 24, 2016, 21:54:43 de către Bogdan Pop »
|
Memorat
|
|
|
|
|