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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Dudas con array[solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas con array[solucionado]  (Leído 1,939 veces)
Isótopo

Desconectado Desconectado

Mensajes: 292


Comprende a los demás para comprenderte a tí mismo


Ver Perfil
Dudas con array[solucionado]
« en: 23 Julio 2010, 23:15 pm »

Hola. Estoy empezando en C y al hacer este programa que busca un numero introducido por el usuario dentro de un array tengo algunos problemillas. No se por qué, los valores dentro de la matriz no se ajustan a la posicion en la que deberian estar.

(Pongo el codigo ya corregido)
Código:
#include <stdio.h>

int main (void)
{
int ind = 0;
char obj = 'n';
int posicion[2];
int numero = 0;
int array[10][2] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
array[0][0]=1;
array[1][0]=2;
array[2][0]=3;
array[3][0]=4;
array[4][0]=5;
array[5][0]=6;
array[6][0]=7;
array[7][0]=8;
array[8][0]=9;
array[9][0]=10;
array[0][1]=11;
array[1][1]=12;
array[2][1]=13;
array[3][1]=14;
array[4][1]=15;
array[5][1]=16;
array[6][1]=17;
array[7][1]=18;
array[8][1]=19;
array[9][1]=20;
      
    
    printf("Escriba un numero: ");
    scanf("%d", &numero);
    fflush(stdin);
    /*Buscamos ese numero en la primera columna*/
    for (ind = 0; ind <= 9; ind++)
    {
     if (numero == array[ind][0])
       {
       posicion[0] = ind;
       posicion[1] = 0;
       obj = 's';
       }
    }
    /*Lo buscamos en la segunda columna*/
    for (ind = 0; ind <= 9; ind++)
    {
     if (numero == array[ind][1])
        {
        posicion[0] = ind;
        posicion[1] = 1;
        obj = 's';
        }
     }
    if (obj == 'n')
    {
            printf("\nNo se ha encontrado el numero");
            getchar();
    }
    else
    {
            printf("\nEl numero %d, esta en la posicion (%d, %d)", numero, posicion[0], posicion[1]);
            getchar();
    }
}



« Última modificación: 24 Julio 2010, 10:46 am por FrSk » En línea


-Asus Crosshair IV Formula            
-AMD Phenom II X6 1090T 3.94Ghz @1.38V
-Corsair H70
-Sapphire Radeon HD 6970 2GB Dual-Fan
-G.Skill PIS PC3-17066 4GB 1900MHz 7-9-7-20 @1.65V
-WD Caviar Black 500GB
-Seagate Barracuda Green 2TB x2
-Antec TruePower New 750W Modular
-Cooler Master Dominator CM-690
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: Dudas con array
« Respuesta #1 en: 23 Julio 2010, 23:37 pm »

Cuando haces:
Código
  1. int v[3];

Se reservan 3 espacios de memoria para enteros... estos son,

v[0],v[1] y v[2]

v[3] NO forma parte del vector, v[3] seria estaria "al lado" de v[2] pero contiene basura... Asi que empieza distribuyendo bien el vector... Porque array[0][1] ni array[9][0] no forman parte del vector, el vector llega hasta array[8][0]... Es decir eso no es una matriz en realidad... Es un vector ya que la segunda dimencion es de 1 elemento...


Para lo que quieres deberias hacer:
Código
  1. int array[10][2];

Saludos...


En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines