Autor
|
Tema: Array bidimensional y uni. ¿Por qué el arreglo d[i] no se imprime en pantalla??? (Leído 1,678 veces)
|
mikem
Desconectado
Mensajes: 4
|
#include <iostream> #include <iomanip> #include <cstdlib> #include <stdio.h> using namespace std; const int TAM=10;
//Prototipos de funciones: void Leer(int a [TAM][TAM],int n); void Imprimir (int a[TAM][TAM], int n);
void Diag (int a [TAM][TAM], int n, int d[TAM]); void Printdiag (int d[TAM], int n);
int main () { int n; int i,j; int a[TAM][TAM]; int d[TAM];
do {
cout<<"Ingrese tam. de la matriz, por favor: \n"; cin >>n;
} while (n<1 || n>TAM); if (n<1 || n>TAM) { cout<<"Invalido. \n"; } //Llamada de funciones: Leer (a,n); Imprimir (a,n); system ("PAUSE"); system ("cls"); Diag (a,n,d); Printdiag (d,n); } void Leer (int a [TAM][TAM], int n) { cout<<"Ingrese datos a la matriz: \n \n"; int i,j; for (i=0; i<n; i++) for (j=0; j<n; j++) { cin >>a[i][j]; } } void Imprimir (int a [TAM][TAM], int n) { cout<<"La matriz ingresada es: \n"; for(int i=0; i<n; i++) for (int j=0; j<n; j++) cout <<setw(3)<<a[i][j]<<"\n\n"; } void Diag (int a[TAM][TAM], int n, int d[TAM]) { cout<<"Te voy a dar la diagonal principal: \n\n"; for (int i=0; i<n; i++) for (int j=0; j<n; j++) d[i]==a[i][j]; }
void Printdiag (int d[TAM], int n) { //AQUÍ ESTÁ EL PROBLEMA: //¿por qué no imprime el vector d como corresponde? //Sale en pantalla todos números raros... for (int i=0; i<n; i++) cout<<d[i]; } ¿Qué cosa debería modificar? Saludos
|
|
« Última modificación: 18 Octubre 2014, 20:22 pm por mikem »
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Hola, creo que el problema está en que en el for cuando calculas la diagonal estás usando un operador de igualdad en lugar del de asignación, concretamente aquí: void Diag (int a[TAM][TAM], int n, int d[TAM]) { cout<<"Te voy a dar la diagonal principal: \n\n"; for (int i=0; i<n; i++) for (int j=0; j<n; j++) d[i]==a[i][j]; //<-- Aquí }
En efecto, ese es el fallo. Una cosa, cuando publiques código hazlo entre las etiquetas GeSHi para que te salga coloreado, y otra cosa la biblioteca stdio.h no es de C++ es de C, si quieres usar esas funciones tienes que incluir cstdio y no la que has puesto. Un saludo.
|
|
« Última modificación: 18 Octubre 2014, 21:33 pm por avesudra »
|
En línea
|
Regístrate en
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
¿Qué cosa debería modificar? Ademas (y respondiendo a tu otro tema sobre el mismo programa, deberías haber respondido en este) para obtener la diagonal principal solo necesitas de un bucle, la funcion "Diag" hay que cambiarla a: void Diag(int a[TAM][TAM], int n, int d[TAM]) { cout << "Te voy a dar la diagonal principal:" << endl; for (int i = 0; i < n; i++) d[i] = a[i][i]; }
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
problema con arreglo bidimensional no imprime
Programación C/C++
|
MartyMcfly
|
4
|
4,669
|
25 Agosto 2010, 15:00 pm
por Mr.Blue
|
|
|
Duda con arreglo bidimensional dinámico en IDE DevC++
Programación C/C++
|
finger10
|
3
|
7,740
|
2 Septiembre 2011, 17:01 pm
por finger10
|
|
|
Apuntador a arreglo bidimensional en c
Programación C/C++
|
UltimateDragoon
|
2
|
4,840
|
3 Octubre 2011, 23:05 pm
por UltimateDragoon
|
|
|
Arreglo bidimensional
Programación C/C++
|
luiisyolmaan
|
2
|
2,796
|
4 Octubre 2012, 14:31 pm
por leosansan
|
|
|
ordenar arreglo bidimensional
Programación C/C++
|
jona1107
|
1
|
4,794
|
18 Noviembre 2012, 17:37 pm
por durasno
|
|