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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Busqueda en matrices
« en: 3 Marzo 2016, 02:15 am »

Hola soy nueva en este mundo (comenzando) :c tengo que hacer una búsqueda en la matriz para encontrar un numero de 3 dígitos introducido por el usuario y hacer la búsqueda dígito por dígito. Este es el enunciado

. Función separar_digitos: debe recibir el valor a buscar y separarlo en dígitos
6. Función buscar izq_der: realizar la búsqueda del valor de izquierda a derecha en toda la
matriz
7. Función buscar der_izq: realizar la búsqueda del valor de derecha a izquierda en toda la
matriz
8. Función buscar arr_aba: realizar la búsqueda del valor de arriba a abajo en toda la matriz
9. Función buscar aba_arr: realizar la búsqueda del valor de abajo a arriba en toda la matriz
10. Desde el método main invocar todas las funciones de búsqueda y presentar en pantalla la
ubicación en donde se encontró cada valor


LO QUE LLEVO DE CODIGO ES ESTO:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>


/* run this program using the console pauser or add your own getch, system("pause") or input loop */

void cargar(int** matriz, int filas, int colum);
void mostrar(int** matriz, int filas, int colum);
void cargar_vec(int* vector, int tam);
int separar(int valor);




int main(int argc, char** argv) {
   
   
      int **matriz, filas, colum, i,j;
      int *vector, tam;
   
   printf("Ingrese numero de filas\n");
   scanf("%d", &filas);
   
   printf("Ingrese numero de columnas\n");
   scanf("%d", &colum);
   
   if(filas>=3 && colum>=3)
   {
   
   
      matriz=(int **)malloc(sizeof(int)*filas);
   
      for(i=0;i<filas;i++)
      {
      matriz=(int *)malloc(sizeof (int)*colum);   
      }
      
   cargar(matriz,filas,colum);
   mostrar(matriz,filas,colum);
   
   
   }
   
      else
   {
      printf("\nERROR\n\n");
      return 0;
   }
   
   getch();
   system("cls");
   
   printf("Ingrese tamano del vector\n");
   scanf("%d",&tam);
   
   vector = (int *)malloc(sizeof(int)*tam);
   
   cargar_vec(vector,tam);
   
   


  

   return 0;
}

//----------------------------------------------------------------------------------------------------------------------//
void cargar(int** matriz, int filas, int colum)
{
   int i,j;
   srand(time(NULL));
   
   for(i=0; i<filas; i++)
   {
      for(j=0;j<colum;j++)
      {
      fflush(stdin);   
      matriz[j]=rand()%9;
         
      }
   }
   
   
}

//---------------------------------------------------------------------------------------------------------------------------//

void mostrar(int** matriz, int filas, int colum)
{
   int i,j;
   
   for(i=0; i<filas; i++)
   {
      for(j=0;j<colum;j++)
      {
      
      printf("%d\t",matriz[j]);
         
      }
      printf("\n");
   }
   
   
}
//--------------------------------------------------------------------------------------------------------------------------------//

   void cargar_vec(int* vector, int tam)
   {
      int i, valor,  valor1,valor2,valor3;
      
      for(i=0; i<tam; i=i+3)
      {
         printf("Ingrese valor");
         scanf("%d", &valor);
         separar(valor);

         
         
         
         
      }   
      
   }
   
   //----------------------------------------------------------------------------------------------------------------------------------//
   

      int separar(int valor)
{
    int valor1,valor2,valor3;
   
    if (valor >= 0)
    {
       if (valor <= 999)
       {
          valor1 = valor / 100;
          valor2 = (valor % 100) / 10;
          valor3 = (valor % 100) % 10 / 1;
 
          if(valor>=100)
          {
             printf("%d   %d   %d  \n", valor1, valor2,valor3);


         }
         else
         {
         
            printf("ERROR\n");
            printf("Ingrese un numero de 3 digitos\n");
         }
       }
    }
   
   
}

//---------------------------------------------------------------------------------------------------------------------------------//


Seria de gran ayuda gracias.


En línea

abaadoon

Desconectado Desconectado

Mensajes: 19



Ver Perfil
Re: Busqueda en matrices
« Respuesta #1 en: 4 Marzo 2016, 00:35 am »

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define MAX_ARGS 90
#define MAX_CADENA 100
int extrae_argumentos(char *orig, char *delim, char args[][MAX_CADENA], int max_args)
{
  char *tmp;
  int num=0;
  /* Reservamos memoria para copiar la candena ... pero la memoria justa */
  char *str = malloc(strlen(orig)+1);
  strcpy(str, orig);

  /* Extraemos la primera palabra */
  tmp=strtok(str, delim);
  do
    {
      if (num==max_args)
    return max_args+1;  /* Si hemos extraído más cadenas que palabras devolvemos */
                /* El número de palabras máximo y salimos */

      strcpy(args[num], tmp);   /* Copiamos la palabra actual en el array */
      num++;

      /* Extraemos la siguiente palabra */
      tmp=strtok(NULL, delim);
    } while (tmp!=NULL);

  return num;
}


// Aquí copiamos extrae_argumentos o extrae_argumentos_d
char cadena[30];
int main()
{
  printf("dame la palabra a separar: \n");
  fgets(cadena,30,stdin);

  char args[MAX_ARGS][MAX_CADENA]; // Para extrae_argumentos
//  char *args2[MAX_ARGS];                  // Para extrae_argumentos_d

  int nargs = extrae_argumentos(cadena, " ", args, MAX_ARGS);
  int i;

  if (nargs>MAX_ARGS)
    {
      printf ("Se han devuelto más palabras del máximo\n");
      nargs=MAX_ARGS;
    }

  printf("CADENA: %s\n", cadena);
  for (i=0; i<nargs; i++)
    printf("Palabra %d: \"%s\"\n", i, args);

  return 0;
}


« Última modificación: 4 Marzo 2016, 00:38 am por abaadoon » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
matrices en C#
Programación General
volterra 4 10,209 Último mensaje 18 Mayo 2010, 06:26 am
por Og.
matrices
Programación C/C++
aral90 2 2,266 Último mensaje 9 Diciembre 2011, 20:13 pm
por aral90
matrices
.NET (C#, VB.NET, ASP)
legomanticore 4 3,588 Último mensaje 14 Mayo 2012, 03:02 am
por $Edu$
Duda algoritmo búsqueda primero en anchura y búsqueda primero el mejor
Programación General
painkillerpucela 1 3,383 Último mensaje 20 Noviembre 2012, 13:37 pm
por Oblivi0n
Busqueda de valores con matrices
Programación C/C++
Gaby_10 4 2,560 Último mensaje 15 Febrero 2014, 21:31 pm
por Gaby_10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines