/
Inicio :: Foros

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

algo pasa con el for

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Pantalàimon_



Registrado: 17 Jul 2007
Mensajes: 90

MensajePublicado: 27/09/2007 1:52 pm
Título: algo pasa con el for

Este programa no debería devolver "20"?

Código:
#include<stdio.h>

int main(void)
{
  int D,indice;
  char b[30]="12345678901234567890aaaaaaaaa";
  D=30;
  for(indice=D ; b[indice]!='a' ; indice--)
  {
    D--;
  }
  printf("%d",D);
  return 0;
}


Que es lo que falla entonces? por que me devuelve "28"?

(Por cierto es lenguaje C estandar)

Saludos y gracias:)
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3658
Ubicación: Mexico

MensajePublicado: 27/09/2007 2:49 pm
Título:

El error en el programa es utilizar como indice el valor 30 ya que en C los indices inician en 0 y terminan en numero_de_elementos - 1. En tu caso el rango de indices validos va desde 0 hasta 29.

Y el resultado del programa es el correcto: en la condicion del bucle indicas que este debe continuar hasta encontrarse el caracter 'a', de derecha a izquierda:
Código:
for (indice = D; b[indice] != 'a'; indice--)
{
   D--;
}

Y la posicion o indice del caracter 'a' mas a la derecha es ese, 28.

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
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