Ayuda con imprimir una matriz en arreglo bidimensional

Iniciado por conker93, 6 Octubre 2012, 02:50 AM

0 Miembros y 1 Visitante están viendo este tema.

conker93

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;
}

shellb_c0de

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 (cpp) [Seleccionar]
#include <iostream>

using namespace std;
int main()
{
int matriz [30][30];
int valor;
int fil;
int col;
int matriz2 [30][30];
double prom;


int suma=0;
int sumatotal=0;


cout <<"digite el numero de filas   :";
cin>>fil;
cout <<endl;
cout <<"ingrese numero de columnas   :";
cin>>col;
cout <<endl;

for(int i=0;i<fil;i++) // Recorre las filas de la matriz
{
for(int j=0; j<col;j++) // Recorre las columnas de la matriz
{
cout<<"Ingrese el valor de la matriz en la posicion ["<<i<<","<<j<<"]"<<endl;
cin>>valor;
matriz[i][j] = valor;
}
}
// Imprimiendo el arreglo en formato matricial

cout <<endl;
for(int i=0;i<fil;i++)
{


cout<<"|";
for(int j=0; j<col;j++)
{
cout<<"\t"<<matriz[i][j]<<"\t";
}
cout<<"|"<<endl;
}
//suma diagonal
for(int i=0;i<fil;i++)
{

for(int j=0; j<col;j++)
{
     matriz2[i][j]=matriz[i][j];

    sumatotal=sumatotal+matriz[i][j];
    prom=sumatotal/(fil*col);
if(i==j)continue;
    suma=suma+matriz[i][j];
}
}
//copiar fila 2 en nuevo arreglo mostrar valores de una fila cualquiera
cout <<endl;
cout<<"nuevo arreglo:\n";
for(int z=0; z<col;z++)
{

cout<<"\t"<<matriz2[2][z]<<"\t";
}
cout<<"|"<<endl;
cout <<"sumatoria de los elementos que no pertenece a la diagonal:  ";
cout<<suma<<endl;
cout <<"promedio de los elementos del arreglo:  ";
cout<<prom<<endl;
return 0;
}



"Tu vida solo es la suma del resto de una ecuación no balanceada, connatural a la programación de Matrix. Eres el producto eventual de una anomalía, que no se ha logrado suprimir de esta armonía de precisión matemática. Aunque sigues siendo una incomodidad que evito con frecuencia, es previsible y no escapa a unas medidas de control que te han conducido inexorablemente aquí.