Cand incerc sa rulez programul C++ primesc acest mesaj: expected identifier or ( before numeric constant. Nu stiu ce am gresit. Acesta e programul:
#include
#include
using namespace std;
ifstream f("max_suma.in");
ofstream g("max_suma.out");
int main()
{
unsigned int a[100][50],n,m,i,j,max,s;
f>>n;
f>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
f>>a[i][j];
for(i=1;i<=n;i++)
{
max=0;s=0;
for(j=1;j<=m;j++)
{
if(a[i][j]>max)
max=a[i][j];
s=s+a[i][j];
}
g<
}
f.close();
g.close();
return 0;
}
Răspunsuri la întrebare
► Cod "reparat":
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("max_suma.in");
ofstream g("max_suma.out");
int main(){
unsigned int a[100][50], n, m, i, j, max, s;
f >> n;
f >> m;
//Citire matrice din fisier
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
f >> a[i][j];
//Calculare maxim si suma pe coloana
for (i = 1; i <= n; i++){
max = 0; s = 0;
for (j = 1; j <= m; j++){
if (a[i][j] > max)
max = a[i][j];
s = s + a[i][j];
}
g << max << " " << s << "\n";
}
f.close();
g.close();
return 0;
}
===================
► Nota:
Cand copiezi cod de pe unele pagini web e posibil sa se copieze caractere (unele chiar invizibile) care nu pot fi intelese de compilator.
Cand apar astfel de probleme IDE-ul (fie ca e code::blocks, fie ca e VS sau alta solutie solutie) iti va indica pozitia erorii. Verifica linia respectiva si incearca sa o faci sa functioneze.
◘ Sfaturi:
- Incearca sa te obisnuiesti cu indexarea vectorului/matricii de la 0, nu de la 1
- Initializeaza maximul cu prima valoare de pe coloana (in general, prima valoare gasita in domeniu), daca avem o matrice speciala cu 0 linii nu iti va afisa un mesaj corect.