Test Foro de elhacker.net SMF 2.1

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