Jump to content
Forum Roportal
Alex_here

alte probleme in mingw

Rate this topic

Recommended Posts

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

Edited by Alex_here

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×