Sari la conținut
Forum Roportal
Alex_here

alte probleme in mingw

Evaluează acest topic

Postări Recomandate

cine imi zice si mie ce e gresit la programu asta?

 

 

 

#include<iostream>

 

using namespace std;

 

int a[101][101],n;

 

int cifr(int a,int n)

{int i,j,rez;

for(i=1;i<=n;i++)

{rez=0;

for(j=1;j<=n;j++)

if(a[j]>0)

rez++;

cout<<rez<<" ";

}

return 0;

}

 

int main()

{int i,j;

cin>>n;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

cin>>a[j];

cout<<cifr(a,n);

return 0;

}

 

ar cam trebui sa afiseze numarul de numere pozitive de pe fiecare linie

Editat de Alex_here

Partajează acest post


Link spre post
Distribuie pe alte site-uri

Buna,

 

M-am uitat putin peste programul realizat si principalele greseli pe care le-am observat sunt urmatoarele:

 

1. Antetul functiei nu este corect. Tu vrei sa transmiti o matrice ca parametru insa in antet ai declarat doi parametrii de timpul int.

int cifr(int a,int n)
corect este (int a[101][101], int n).

2. In cazul in care folosesti functia asa cum este folosita in program pe langa numarul de numere pozitive de pe fiecare linie iti va afisa in coada si un zero, de la instructiunea reutrn. Eu am modificat functia astfel:

void cifr(int a[101][101],int n)
{int i,j,rez;
for(i=1;i<=n;i++)
{rez=0;
for(j=1;j<=n;j++)
if(a[i][j]>0)
rez++;
cout<<rez<<" ";
}
}

Adica am facut functia void. Asa returneaza doar numarul de numere pozitive din matricea transmisa ca parametru. Apelul functiei in main se va face astfel:

cifr(a,n);

 

Postez mai jos programul modificat

#include<iostream>

using namespace std;

int a[101][101],n;

void cifr(int a[101][101],int n)
{int i,j,rez;
for(i=1;i<=n;i++)
{rez=0;
for(j=1;j<=n;j++)
if(a[i][j]>0)
rez++;
cout<<rez<<" ";
}
}

int main(int argc, char **argv)
{
int i,j;
cout<<"n=";
cin>>n;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
{
 cout<<"a["<<i<<"]["<<j<<"]=";
 cin>>a[i][j];
}
}
 cifr(a,n);
 cin>>n;
return 0;
}

 

Inca o precizare. In cazul in care doresti sa considere si 0 ca numar pozitiv va trebui modificata conditia din if din:

if(a[i][j]>0)

in:

if(a[i][j]>=0)

 

Toate cele bune.

Partajează acest post


Link spre post
Distribuie pe alte site-uri

Inca un lucru cum pot sa citesc un text pe un numar necunoscut de linii dintr-un fisier ?

 

Buna seara,

 

Referitor la intrebarea de mai sus imi vin in minte doua variante :

1.

#include<iostream>
#include<fstream>


using namespace std;

int main() {

ifstream myReadFile;
myReadFile.open("C:\\text.txt");
char output[1000];
if (myReadFile.is_open())
{
while (!myReadFile.eof())// Ia toate randurile pana la sfarsitul fisierului
{
   myReadFile >> output;//Salveaza toate randurile citite
   cout<<output;//Afiseaza randurile citite
}
}
myReadFile.close();
system ("pause");
return 0;
}

 

2.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

void main ()
{
   string STRING;
ifstream infile;
infile.open ("C:\\text.txt");
       while(!infile.eof()) // Ia toate randurile pana la sfarsitul fisierului
       {
        getline(infile,STRING); //salveaza liniile citite in string
        cout<<STRING; // Afiseaza stingul rezultat
       }
infile.close();
system ("pause");
}

 

Ambele variante fac exact acelasi lucru, depinde pe care doresti sa o folosesti.

 

Toate cele bune.

Partajează acest post


Link spre post
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum

×