Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: juand.0203 en 2 Octubre 2015, 04:02 am



Título: Matriz Que vuelva las diagonales 1 con funciones
Publicado por: juand.0203 en 2 Octubre 2015, 04:02 am
Hola a todos

Necesito saber como pasar una matriz el programa consiste en que el usuario ingrese la cantidad del tamaño de la Matriz (siempre sera cuadrada) y el programa imprima la matriz original y despues una matriz la cual sus dos diagonales sean 1

Este es el codigo que tengo hasta el momento:

#include<stdio.h>
void ingresematriz(int n,int A[]);
void Imprimir(int i, int n, int A[],int j,int g, int h);

main()
 {
 int n,A[n][n],h,i,j,k,g;
 ingresematriz(n,A);
 Imprimir(i,n,A,j,g,h);
 
 }
void ingresematriz(int n,int A[])
 {
 
 printf("ingrese el tamaño de la matriz: ");
 scanf("%d",&n);
 int A[n][n];
 
 }
void Imprimir(int i, int n, int A[],int j,int g, int h)
 {
 for (int i=0;i<n;i++)
   {
      for (int j=0;j<n;j++)
    { 
         printf("valor de la columna %d, y la fila %d: ",j,i);// j es columna, i es fila
         scanf("%d",&A[j]);
      }
      printf("\n");
   }
   
 for (int i=0;i<n;i++)
   {
      for (int j=0;j<n;j++)
      {
 printf("%d\t",A[j]);
   }
   printf("\n");
   } 
   
      printf("\n");
    printf("la matriz modificada es: \n");
      printf("\n");
      
   for (int i=0;i<n;i++)
   {
      for (int j=0;j<n;j++)
      {
    if(i==j)
     {
     A[j]=1;
     printf("%d\t",A[j]);
    }
    else
    {
       g=i+j;
       h=g+1;
     if (h==n)
     {
      A[j]=1;
       printf("%d\t",A[j]);
     }
     else
     {
         printf("%d\t",A[j]);
     }    
    }
   
   }
   printf("\n");
   } 
 }