Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: conker93 en 6 Octubre 2012, 02:50 am



Título: Ayuda con imprimir una matriz en arreglo bidimensional
Publicado por: conker93 en 6 Octubre 2012, 02:50 am
Hola me podrian ayudar de donde sale el fila=5;? y el columna=5? es que mi profesor nos lo puso asi, entiendo todo excepto la parte donde imprime el arreglo

#include<stdio.h>
#include<conio.h>
#include<windows.h>
void carga_arreglo();
void sumar_diagonal();
void sumar_diagonal2();
void sumar_triangular_inferior_y_superior();
void sumar_matriz();
void imprimir_arreglo();

int i,j,n,matriz[50][50],suma,suma1,suma2,su…

main()
{
system("cls");
carga_arreglo();
sumar_diagonal();
sumar_diagonal2();
sumar_triangular_inferior_y_superior();
sumar_matriz();
imprimir_arreglo();
}
void carga_arreglo()
{
system("cls");
printf("\nDame la dimension del arreglo\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("Dame el elemento[%d][%d]: ",i,j);
scanf("%d",&matriz[j]);
}
}
return;
}
void sumar_diagonal()
{
suma=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i==j)
{
suma=suma+matriz[j];
}
}
}
return;
}
void sumar_diagonal2()
{
suma1=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if((n+1)==(i+j))
{
suma1=suma1+matriz[j];
}
}
}
return;
}
void sumar_triangular_inferior_y_superior()
{
suma3=0;
suma4=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i>j)
{
suma3=suma3+matriz[j];
}
else(i<j);
{
suma4=suma4+matriz[j];
}

}
}
return;
}
void sumar_matriz()
{
suma6=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
suma6=suma6+matriz[j];
}
}
return;
}
void imprimir_arreglo()
{
system("cls");
fila=5;
for(i=1;i<=n;i++)
{
columna=5;
for(j=1;j<=n;j++)
{
printf("%d",matriz[j]);
printf("\t\t");
/* columna=columna+5*/
}
printf("\n\n");
}
suma2=suma+suma1;
suma5=suma3+suma4;
printf("\n La suma de la diagonal principal es %d \n",suma);
printf("\n La suma de la diagonal secundaria es %d \n",suma1);
printf("\n La suma de la diagonal principal y la secundaria es %d \n",suma2);
printf("\n La suma de la diagonal triangular inferior es %d \n",suma3);
printf("\n La suma de la diagonal triangular superior es %d \n",suma4);
printf("\n La suma de la diagonal triangular inferior y superior es %d \n",suma5);
printf("\n La suma de toda la matriz es %d",suma6);
printf("\n Pulse cualquier boton para salir");

getch();
return;
}


Título: Re: Ayuda con imprimir una matriz en arreglo bidimensional
Publicado por: shellb_c0de en 6 Octubre 2012, 04:13 am
porque primero capturas las dimensiones de la matriz  (x,y) las variables fila 5 y columna 5 no se estan utilizando al menos que hagas n a 5
mira este codigo


Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int main()
  5. {
  6. int matriz [30][30];
  7. int valor;
  8. int fil;
  9. int col;
  10. int matriz2 [30][30];
  11. double prom;
  12.  
  13.  
  14. int suma=0;
  15. int sumatotal=0;
  16.  
  17.  
  18. cout <<"digite el numero de filas   :";
  19. cin>>fil;
  20. cout <<endl;
  21. cout <<"ingrese numero de columnas   :";
  22. cin>>col;
  23. cout <<endl;
  24.  
  25. for(int i=0;i<fil;i++) // Recorre las filas de la matriz
  26. {
  27. for(int j=0; j<col;j++) // Recorre las columnas de la matriz
  28. {
  29. cout<<"Ingrese el valor de la matriz en la posicion ["<<i<<","<<j<<"]"<<endl;
  30. cin>>valor;
  31. matriz[i][j] = valor;
  32. }
  33. }
  34. // Imprimiendo el arreglo en formato matricial
  35.  
  36. cout <<endl;
  37. for(int i=0;i<fil;i++)
  38. {
  39.  
  40.  
  41. cout<<"|";
  42. for(int j=0; j<col;j++)
  43. {
  44. cout<<"\t"<<matriz[i][j]<<"\t";
  45. }
  46. cout<<"|"<<endl;
  47. }
  48. //suma diagonal
  49. for(int i=0;i<fil;i++)
  50. {
  51.  
  52. for(int j=0; j<col;j++)
  53. {
  54.     matriz2[i][j]=matriz[i][j];
  55.  
  56.    sumatotal=sumatotal+matriz[i][j];
  57.    prom=sumatotal/(fil*col);
  58. if(i==j)continue;
  59.    suma=suma+matriz[i][j];
  60. }
  61. }
  62. //copiar fila 2 en nuevo arreglo mostrar valores de una fila cualquiera
  63. cout <<endl;
  64. cout<<"nuevo arreglo:\n";
  65. for(int z=0; z<col;z++)
  66. {
  67.  
  68. cout<<"\t"<<matriz2[2][z]<<"\t";
  69. }
  70. cout<<"|"<<endl;
  71. cout <<"sumatoria de los elementos que no pertenece a la diagonal:  ";
  72. cout<<suma<<endl;
  73. cout <<"promedio de los elementos del arreglo:  ";
  74. cout<<prom<<endl;
  75. return 0;
  76. }
  77.