Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problemas con ejercicio de punteros

Estas en el tema de problemas con ejercicio de punteros en el foro de C/C++ en Foros del Web. yHola gente como va? Bueno queria hacerles una consulta a ver si pueden ayudarme...mañana tengo un parcial de C++ de varios temas...pero lo que todavia ...
  #1 (permalink)  
Antiguo 12/06/2012, 22:53
 
Fecha de Ingreso: junio-2012
Mensajes: 1
Antigüedad: 11 años, 10 meses
Puntos: 1
problemas con ejercicio de punteros

yHola gente como va? Bueno queria hacerles una consulta a ver si pueden ayudarme...mañana tengo un parcial de C++ de varios temas...pero lo que todavia no me quedo muy claro es lo de punteros. me mandaron un parcial tipo para practicar, el primer ejercicio (y mas importante) me salio perfecto. pero en la parte de punteros la verdad no entiendo como hacerlo. les dejo lo que dice para ver si me pueden dar una mano:


2)Lee atentamente el siguiente codigo y responde:


main()
{
char *nom="ME ENCANTAN LOS PUNTEROS";
int i=0;


//1. Que hace la siguiente instruccion?

do{
} while(*(nom+i++));

//2. Que imprime el siguiente bloque?
do{
printf("%c", *(nom+i));
i--;
}while(i>=0);

//3. Como modificarias el codigo para emitir todas las letras A?


//4.Y para contar y emitir la cantidad de letras R?


system("pause");
return 0; }




Bueno este es el ejercicio del parcial tipo...si me pueden ayudar con estos puntos se los agradeceria mucho, ya que mañana las 7 de la tarde tengo el parcial y ya veo que me toma algo asi, que es muy probable...y no voy a entenderlo.. Gracias!!
  #2 (permalink)  
Antiguo 13/06/2012, 08:43
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: problemas con ejercicio de punteros

1- Mueve el indice i hasta el final de la cadena. En i queda la "longitud"

2- Imprime el arreglo alrevez

3.

Código C:
Ver original
  1. do{
  2.    if ( *(nom+i)  != 'A' )
  3.          printf("%c", *(nom+i));
  4.  i--;
  5.  }while(i>=0);

4-
Código C:
Ver original
  1. i = cant = 0;
  2. do{
  3.      if ( *(nom+i)  = 'R' ) cant++;
  4.  } while(*(nom+i++));
  5.  printf("Cantida de R: %d", cant);

Agradece que me agarraste de buen humor para hacerte la tarea. Ahora si te recomendaria que te pongas a estudiar . No creo que por ver mis respuestas de la nada entiendas el ejercicio y todo sobre punteros como para que mañaan te vaya bien en el parcial

Saludos,
  #3 (permalink)  
Antiguo 16/06/2012, 12:36
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: problemas con ejercicio de punteros

Gracias sam90, y... ¿Existen también punteros en C++?
  #4 (permalink)  
Antiguo 16/06/2012, 17:48
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: problemas con ejercicio de punteros

Por supuesto existen!!
  #5 (permalink)  
Antiguo 17/06/2012, 08:11
Avatar de Doommarine_Maxi  
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: problemas con ejercicio de punteros

Cita:
Iniciado por sam90 Ver Mensaje
Por supuesto existen!!
Ja ver tus codigos es como ver arte mi querido sam90.
  #6 (permalink)  
Antiguo 02/03/2014, 14:51
 
Fecha de Ingreso: enero-2014
Mensajes: 60
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: problemas con ejercicio de punteros

si no he entendido mal, 'i' en el ejercicio 1 queda apuntando mas allá del carácter nulo de la cadena de caracteres ya que sale del bucle al llegar al carácter nulo y después hace el pos-incremento.
para que funcione bien en el ejercicio 2 el 'i--' debería colocarse antes del printf y quitar el '=' en la comparación del while.

sam90 se comió un '=' en el if del ejercicio 4 y no tiene fallo de compilación por que es una asignación, si en una comparación la constante la colocamos siempre en la parte izq, veremos estos errores ya que nos da un error en la compilación.

:)

Etiquetas: ejercicio, int, punteros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 05:57.