elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, YreX-DwX)
| | |-+  Colgado jaja
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Colgado jaja  (Leído 201 veces)
diegox474

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Colgado jaja
« en: 12 Mayo 2020, 18:48 »

necesito  hacer un algoritmo que pueda leer una matriz sacar todos los componentes de la diagonal cambiarlos por 1 y guardarlos en otro vector.

hasta ahora lo que tengo es que imprime los valores de la diagonal, el problema es que no se como cambiar los valores por 1 y guardarlos en el otro arreglo

#include <stdio.h>
#include <stdlib.h>
void diagonal(int matriz[100][100]);// se declara 100 para darle el tamaño suficiente al usuario de poner la amtriz por las dimensiones que necesite
int main()
{
    int filas, columnas ,i,j;
    int matriz[100][100]={0};

    printf("INGRESE EL NUMERO DE FILAS PARA SU MATRIZ CUADRADA:");
    scanf("%d",&filas);
    printf("INGRESE EL NUMERO DE COLUMNAS PARA SU MATRIZ CUADRADA:");
    scanf("%d",&columnas);
    for(i=0;i<filas;i++)
    {
        for(j=0;j<columnas;j++) // se llena la matriz
        {
            printf("INGRESE VALORES DE LA MATRIZ[%d , %d]: ",i,j);
            scanf("%d",&matriz[j]);
        }
    }
     for(i=0;i<filas;i++)
    {
        for(j=0;j<columnas;j++)
        {
            printf("%d",matriz[j]); // se imprim la matriz
        }
        printf("\n");
    }
    diagonal(matriz); // invoco la funcion
   

    return 0;
}


void diagonal(int matriz[100][100]) // esta es la funcion en donde encuentro la diagonal
{
    int i,filas,columnas;
    printf("EL VALOR DE LA DIAGONAL ES\n");
    for(i=0;i<columnas;i++)        // se pueden colocar filas o columnas ya que se tomara la misma .. mirar abajo en el printf.
    {
        printf("%d ",matriz);
    }
    printf("\n");
}


En línea

diegox474

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Colgado jaja, necesito completar este codigo
« Respuesta #1 en: 12 Mayo 2020, 18:49 »

necesito  hacer un algoritmo que pueda leer una matriz sacar todos los componentes de la diagonal cambiarlos por 1 y guardarlos en otro vector.

hasta ahora lo que tengo es que imprime los valores de la diagonal, el problema es que no se como cambiar los valores por 1 y guardarlos en el otro arreglo

#include <stdio.h>
#include <stdlib.h>
void diagonal(int matriz[100][100]);// se declara 100 para darle el tamaño suficiente al usuario de poner la amtriz por las dimensiones que necesite
int main()
{
    int filas, columnas ,i,j;
    int matriz[100][100]={0};

    printf("INGRESE EL NUMERO DE FILAS PARA SU MATRIZ CUADRADA:");
    scanf("%d",&filas);
    printf("INGRESE EL NUMERO DE COLUMNAS PARA SU MATRIZ CUADRADA:");
    scanf("%d",&columnas);
    for(i=0;i<filas;i++)
    {
        for(j=0;j<columnas;j++) // se llena la matriz
        {
            printf("INGRESE VALORES DE LA MATRIZ[%d , %d]: ",i,j);
            scanf("%d",&matriz[j]);
        }
    }
     for(i=0;i<filas;i++)
    {
        for(j=0;j<columnas;j++)
        {
            printf("%d",matriz[j]); // se imprim la matriz
        }
        printf("\n");
    }
    diagonal(matriz); // invoco la funcion
   

    return 0;
}


void diagonal(int matriz[100][100]) // esta es la funcion en donde encuentro la diagonal
{
    int i,filas,columnas;
    printf("EL VALOR DE LA DIAGONAL ES\n");
    for(i=0;i<columnas;i++)        // se pueden colocar filas o columnas ya que se tomara la misma .. mirar abajo en el printf.
    {
        printf("%d ",matriz);
    }
    printf("\n");
}


En línea

YreX-DwX
Moderador
***
Desconectado Desconectado

Mensajes: 702



Ver Perfil
Re: Colgado jaja
« Respuesta #2 en: 12 Mayo 2020, 19:23 »

Para colocar códigos utiiza las etiquetas de Código GeSHi (desplegable encima del cuadro de texto)

Tu propósito es trabajar con matrices cuadradas por lo que parece. Entonces no tiene sentido que pidas filas y columnas ya que podrían ponerte números diferentes y hacer que el programa falle. Es mejor que pidas un único valor que sea el orden de la matriz, es decir, el número de filas y columnas.

Si quieres recorrer la diagonal de una matriz cuadrada verás que las casillas que quieres recorrer son: (0,0), (1,1), (2,2),...; es decir, la i y la j avanzan a la vez o lo que es lo mismo solo utilizas una variable en el bucle:
Código
  1. for(int i = 0; i < orden; ++i){
  2.  matriz[i][i] = 1;
  3. }

Si quieres guardar los valores en otro array, tendrás que crearlo. Y si quieres guardar los valores originales poner la instrucción antes de modificar los valores por 1s y si lo que quieres guardar son los 1s (que no tiene mucho sentido) pues después:
Código
  1. #DEFINE SIZE 100 // Usa constantes para los numeros que aparezcan sueltos. Asi puedes cambiarlos todos de una vez
  2. //...
  3. int main(){
  4.  //...
  5.  int diagonal[SIZE];
  6.  //...
  7.  for(int i = 0; i < orden; ++i){
  8.    diagonal[i] = matriz[i][i];
  9.    matriz[i][i] = 1;
  10.  }
  11.  //...
  12. }

Luego recuerda usar <orden> para recorrer tanto la matriz como el array ya que son las posiciones que has ocupado realmente. El resto de posiciones desde orden hasta SIZE serán basura.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeño code en vb.net (un loco anda suelta jaja)
.NET (C#, VB.NET, ASP)
Sin Nick xD 3 1,666 Último mensaje 16 Marzo 2008, 02:21
por krackwar
Estrellon jaja « 1 2 »
Foro Libre
SOMBRIO 10 1,840 Último mensaje 1 Julio 2010, 01:23
por X Æ A-12
Ningun programador puede jaja xD « 1 2 3 »
Programación Visual Basic
Edu 29 5,136 Último mensaje 5 Noviembre 2010, 15:26
por Edu
Una pequeña duda ( se me olvido jaja )
Foro Libre
BlackZeroX (Astaroth) 5 1,328 Último mensaje 9 Febrero 2011, 05:04
por Roy-Mustang
buenas otra vez jaja tengo un problema con programa « 1 2 3 »
Programación C/C++
eduardo17445 20 3,580 Último mensaje 4 Abril 2014, 15:45
por rir3760
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines