•looky
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« : Ianuarie 21, 2007, 19:28:33 » |
|
Eroare de compilare: In file included from /usr/include/c++/3.3/backward/fstream.h:31, from user.cpp:1: /usr/include/c++/3.3/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated. user.cpp: In function `int main()': user.cpp:20: error: name lookup of `i' changed for new ISO `for' scoping user.cpp:18: error: using obsolete binding at `i' user.cpp:29:2: warning: no newline at end of file Eroare de compilare
Proababil sunt eu foaaarte greu de cap, dar chiar n-am inteles ce am gresit! Acesta e programul: #include <fstream.h>
int m,n,r,c,a[100][100],loc;
ifstream f ("elimin.in"); ofstream g ("elimin.out");
void citeste() {f>>m>>n>>r>>c; for (int x=0;x<m;x++) for (int y=0;y<n;y++) f>>a[x][y]; }
void elimlin() {int suma=0; for (int j=0;j<n;j++) suma=suma+a[0][j]; int minim=suma; for (int i=0;i<m;i++) {suma=0; for (j=0;j<n;j++) suma=suma+a[i][j]; if (suma>=0) if (suma<=minim) {minim=suma;loc=i;} } for (i=loc;i<m-1;i++) for (j=0;j<n;j++) a[i][j]=a[i+1][j]; m--; }
void elimcol() {int suma=0; for (int j=0;j<m;j++) suma=suma+a[j][0]; int minim=suma; for (int i=0;i<m;i++) {suma=0; for (j=0;j<n;j++) suma=suma+a[j][i]; if (suma>=0) if (suma<=minim) {minim=suma;loc=i;} } for (i=loc;i<n-1;i++) for (j=0;j<m;j++) a[j][i]=a[j][i+1]; n--; }
int main() {citeste(); for (int i=0;i<r;i++) elimlin(); for (i=0;i<c;i++) elimcol(); int suma=0; for (i=0;i<m;i++) for (int j=0;j<n;j++) suma=suma+a[i][j]; g<<suma; return 0; }
Nu ma intereseaza faptul ca programul isi indeplineste sau nu cerintele... vreau sa stiu ce am gresit, pentru a nu mai repeta greseala [de compilare]!
|
|
« Ultima modificare: Ianuarie 21, 2007, 21:07:39 de către Valentin Stanciu »
|
Memorat
|
|
|
|
•looky
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #1 : Ianuarie 21, 2007, 19:31:21 » |
|
In program, in functia citeste scrie " a de x de y"
|
|
|
Memorat
|
|
|
|
•bogdan2412
|
 |
« Răspunde #2 : Ianuarie 21, 2007, 19:32:18 » |
|
Daca ai declarat i intr-un for.. dupa ce se termina blocul forului variabila i nu va mai exista.. Acesta este comportamentul compilatorului GCC 
|
|
|
Memorat
|
|
|
|
•blasterz
|
 |
« Răspunde #3 : Ianuarie 21, 2007, 19:37:54 » |
|
ai facut ceva de genu:
for(int i=1;i<=n;i++) {
} for(i=1;i<=n;i++)
sub linux daca declari i in cadrul unei structuri repetitive( for ), el va fi valabil doar in acea structura repetitiva.
|
|
|
Memorat
|
|
|
|
•blasterz
|
 |
« Răspunde #4 : Ianuarie 21, 2007, 19:39:53 » |
|
Daca ai declarat i intr-un for.. dupa ce se termina blocul forului variabila i nu va mai exista.. Acesta este comportamentul compilatorului GCC  se pare ca am raspuns la intrebare aproximativ in acelasi timp 
|
|
|
Memorat
|
|
|
|
•looky
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #5 : Ianuarie 21, 2007, 20:18:29 » |
|
Si acesta e principalul motiv pentru care eu am pierdut si n-am scos nici un punct... Eeh... c`est la vie! Alte greseli mai gasiti pe acolo?  PS: Ca ca mearga corect, ar trebui sa decalr de fiecare data "int i"
|
|
|
Memorat
|
|
|
|
•svalentin
|
 |
« Răspunde #6 : Ianuarie 21, 2007, 21:09:52 » |
|
ca sa meraga, poti fie sa redeclari pentru fiecare for, fie sa declari in afara forului: for (int i=0; i<n; ++i) {<fa ceva>} for (int i=0; i<m; ++i) {<fa ceva>} int i; for (i=0; i<n; ++i) {<fa ceva>} for (i=0; i<m; ++i) {<fa ceva>} more info (poate te ajuta): int i=2; for (int i=0; i<4; ++i) printf("%d", i); printf("%d", i); ar trebui sa afiseze: 01232 (0123 din structura repetitiva for) Dar nu recomad sa folosesti asa ceva - unele compilatoare se comporta diferit de altele
|
|
« Ultima modificare: Ianuarie 21, 2007, 21:12:59 de către Valentin Stanciu »
|
Memorat
|
|
|
|
•looky
Strain
Karma: 0
Deconectat
Mesaje: 4
|
 |
« Răspunde #7 : Ianuarie 21, 2007, 22:25:50 » |
|
Cat despre prima parte a erori... ce puteti spune? In file included from /usr/include/c++/3.3/backward/fstream.h:31, from user.cpp:1: /usr/include/c++/3.3/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.
|
|
|
Memorat
|
|
|
|
•svalentin
|
 |
« Răspunde #8 : Ianuarie 21, 2007, 23:05:37 » |
|
e un warning, nu e eroare, deci poti sa nu il iei in considerare spune sa folosesti varianta noua de librari, fara .h in coada: #include <fstream>
|
|
|
Memorat
|
|
|
|
•florin.moldovanu
Strain
Karma: 0
Deconectat
Mesaje: 3
|
 |
« Răspunde #9 : Februarie 11, 2007, 19:43:33 » |
|
salut, eu am obtinut eroarea: Killed by signal 11(SIGSEGV). am facut un test simplu cu urmatorul program: #include<stdio.h>
int main() {FILE *f,*g; f=fopen("a.in","r"); g=fopen("b.out","w"); fclose(g); fclose(f); return 0; } Pentru programelul asta obtin aceeasi eroare: Killed by signal 11(SIGSEGV). Cred ca sunt obosit si nu mai vad. De ce imi da eroarea asta?
|
|
« Ultima modificare: Februarie 12, 2007, 19:23:36 de către Valentin Stanciu »
|
Memorat
|
|
|
|
•wickedman
|
 |
« Răspunde #10 : Februarie 14, 2007, 09:31:01 » |
|
Pentru programelul asta obtin aceeasi eroare: Killed by signal 11(SIGSEGV). Cred ca sunt obosit si nu mai vad. De ce imi da eroarea asta? unul sau amandoua apeluri fopen() ti-a intors NULL, caz in care nu poti da fclose()!
|
|
|
Memorat
|
|
|
|
|