PDA

Visualizza la versione completa : [C++] Isolare e sommare righe e colonne di matrici


dar24
10-09-2014, 13:23
salve ragazzi, ho un problema con la programmazione in c++ (soprattutto con le matrici).
Mi potreste aiutare con un esercizio in particolare: data una matrice come si pu isolare (e stampare) una riga (o colonna) e se ne sommano gli elementi.
(la riga o colonna scelta da chi esegue il programma)

Scara95
10-09-2014, 13:35
Prova a scrivere del codice e poi noi lo correggiamo e/o ti diamo dei suggerimenti

LeleFT
10-09-2014, 13:36
Proponi la tua soluzione, i tuoi dubbi, gli eventuali errori che riscontri dalla compilazione/esecuzione e nel forum se ne discute.


Ciao. :ciauz:

dar24
10-09-2014, 15:13
questo il programma ke ho fatto fin ora




#include<iostream>
#include<cmath>
using namespace std;
void f(int n, int m, float M[10][10]) /**leggi matrice**/
{
int i,j;
if(n>0 && m>0 && n<=10 && m<=10)
{
for(i=1;i<=n;i++)
{
cout<<"dammi elementi della riga "<<i<<":\n";
for(j=1;j<=m;j++)
{
cin>>M[i][j];
cout<<"\n";
}
}

}
else cout<<"numero elementi non previsto.\n\n";
}
void g(int n,int m,float M[10][10],float d, float&S) /**questo per scrivere la somma di una riga a caso(d)**/
{
int j;
for(j=1;j<=m;j++)
{
S=0.0;
S+=M[d][j];
cout<<"dammi riga:\n";cin>>d;
cout<<"la somma degli elementi sulla riga"<<d<<"e\':"<<S<<".\n\n";
}
}
int main()
{
float M[10][10],d,S;
int n,m,i,j;
cout<<"da quante righe e\' composta la matrice:\n";
cin>>n;
cout<<"\n";
cout<<"da quante colonne e\' composta la matrice:\n";
cin>>m;
cout<<"\n";
f(n,m,M);
g(n,m,M,d,S);
system ("Pause");
return 0;
}

dar24
10-09-2014, 15:58
il problema ke dopo l'avvio del programma, quando inserisco il numero della riga da sommare il risultato sbagliato...

dar24
10-09-2014, 22:15
questo il programma ke ho fatto fin ora




#include<iostream>
#include<cmath>
using namespace std;
void f(int n, int m, float M[10][10]) /**leggi matrice**/
{
int i,j;
if(n>0 && m>0 && n<=10 && m<=10)
{
for(i=1;i<=n;i++)
{
cout<<"dammi elementi della riga "<<i<<":\n";
for(j=1;j<=m;j++)
{
cin>>M[i][j];
cout<<"\n";
}
}

}
else cout<<"numero elementi non previsto.\n\n";
}
void g(int n,int m,float M[10][10],float d, float&S) /**questo per scrivere la somma di una riga a caso(d)**/
{
int j;
for(j=1;j<=m;j++)
{
S=0.0;
S+=M[d][j];
cout<<"dammi riga:\n";cin>>d;
cout<<"la somma degli elementi sulla riga"<<d<<"e\':"<<S<<".\n\n";
}
}
int main()
{
float M[10][10],d,S;
int n,m,i,j;
cout<<"da quante righe e\' composta la matrice:\n";
cin>>n;
cout<<"\n";
cout<<"da quante colonne e\' composta la matrice:\n";
cin>>m;
cout<<"\n";
f(n,m,M);
g(n,m,M,d,S);
system ("Pause");
return 0;
}

Scara95
11-09-2014, 11:46
Gli indici di una matrice m[n][m] vanno da 0 a (n-1) e da 0 a (m-1).
Gli indici sono degli interi e non dei numeri a virgola mobile.
Nella somma della riga non devi azzerrare la somma ad ogni ciclo.

Loading