România
Roportal.ro

alte probleme in mingw

Început de Alex_here, Mie 6 apr 2011 · 4 răspunsuri · 3.759 vizualizări

Alex_here3 mesaje#1

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 Mie 6 apr 2011 19:49

miruna8655 mesaje#2

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.

Alex_here3 mesaje#4

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

Editat Vin 8 apr 2011 20:12

miruna8655 mesaje#5
Alex_here a scris:

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.

← Înapoi la Programare