Matrices poco densas

lilith_cornell
26 de Febrero del 2006
Hola!! tengo un problema con este tema, se supone k debo almacenar los elementos de la matriz triangular inferior en un vector para luego imprimirlo, esto en un programa con funciones, cuando imprimo directamente los numeros si aparecen pero al asignar estos numeros al vector y luego imprimirlo solo me imprime el ultimo numero 10 veces, aqui dejo el codigo de esa función a ver si alguien me puede ayudar y decirme en k estoy mal, de ante mano gracias.
void getvector(int m[4][4])
{ int posini=0;
int v[10]={0};
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
if(m[i][j]!=0)
for(int k=0;k<10;k++)
{ v[k]=m[i][j];}
imprimevector(v);
}
void imprimevector(int v[10])
{ cout<<"n";
for(int b=0;b<10;b++)
cout<<v[b];
cout<<endl;
}

Edgarin
26 de Febrero del 2006
Tu funcion getvector esta mal. Seria asi:

void getvector(int m[4][4])
{ int k=0;
int v[10]={0};
for(int i=0;i<4;i++)
for(int j=0;j<i;j++)
v[k++]=m[i][j];
imprimevector(v);
}

Ah, y si tu matriz es de 4*4 (eso veo), tu vector v tendra 6 elementos (porque la matriz triangular inferior tendria 6) si no estoy mal, entonces tu for iria hasta 6 al mostrar

void imprimevector(int v[10])
{ cout<<"n";
for(int b=0;b<6;b++)
cout<<v[b];
cout<<endl;
}

Saludos, desde La Paz-Boliva
PD: Lo que pasaba antes es que a cada momento sobreescribias tu vector, por eso se quedaba con el ultimo valor repetido



Lo que pasaba es que