/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

puntero

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
ups!!



Registrado: 02 Sep 2007
Mensajes: 12

MensajePublicado: 25/10/2007 12:29 pm
Título: puntero

tengo que hacer un programa que imprima cada uno de los elementos de un arreglo de dos dimensiones, uilisando un puntero para acceder a los mismos, en lugar de utilizar subindices.

#include <stdio.h>



int main(){

int dos_vector[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

int *dos_ptr;
int (*ptr2vector)[4];
int fila,col;

system("pause");

me podrian ayudar por favor!!!!!!
Volver arriba
digies



Registrado: 18 Nov 2005
Mensajes: 240
Ubicación: Cono Sur

MensajePublicado: 26/10/2007 2:42 pm
Título:

Una forma (no optimizada) sería esto:

Código:

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

int main(void)
{
    int a[3][4]= {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
    int *p, i=0;
    p=&a[0][0];
    while(i<4)
    {
        printf("%d ", *p);
        p++;
        i++;
    }
    putchar('\n');
    i=0;
    p=&a[1][0];
    while(i<4)
    {
        printf("%d ", *p);
        p++;
        i++;
    }
    putchar('\n');
    i=0;
    p=&a[2][0];
    while(i<4)
        {
            printf("%d ", *p);
            p++;
            i++;
        }
        putchar('\n');
    system("PAUSE");
    return EXIT_SUCCESS;
}


Un saludo
Volver arriba
digies



Registrado: 18 Nov 2005
Mensajes: 240
Ubicación: Cono Sur

MensajePublicado: 26/10/2007 7:05 pm
Título:

Versión con un procedimiento:
Código:

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

void imprimir(const int b[3][4], unsigned char j);

int main(void)
{
    const int a[3][4]= {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
    unsigned char i;
    for(i=0; i<3; i++)
        imprimir(a, i);
    puts("\n\n");
    system("PAUSE");
    return EXIT_SUCCESS;
}

void imprimir(const int b[3][4], unsigned char j)
{
    unsigned char i=0;
    const int *p=NULL;
    switch (j)
    {
        case 0:
            p=&b[0][0];
            break;
        case 1:
            p=&b[1][0];
            break;
        default:
            p=&b[2][0];
            break;
    }
    while(i<4)
    {
        printf("%d ", *p); p++; i++;
    }
    putchar('\n');
    return;
}


Un saludo
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com