Alex_here 0 Raportează post Postat Aprilie 6, 2011 (editat) 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 Aprilie 6, 2011 de Alex_here Partajează acest post Link spre post Distribuie pe alte site-uri
miruna86 0 Raportează post Postat Aprilie 7, 2011 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
Alex_here 0 Raportează post Postat Aprilie 8, 2011 am reusit sai dau de cap azi in clasa, oricum mersi pentru ajutor Partajează acest post Link spre post Distribuie pe alte site-uri
Alex_here 0 Raportează post Postat Aprilie 8, 2011 (editat) Inca un lucru cum pot sa citesc un text pe un numar necunoscut de linii dintr-un fisier ? Editat Aprilie 8, 2011 de Alex_here Partajează acest post Link spre post Distribuie pe alte site-uri
miruna86 0 Raportează post Postat Aprilie 9, 2011 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