[C con Clase] X-files en c++
bameda
bameda en gmail.com
Mar Oct 14 02:20:40 CEST 2008
Hola listeros,
tratando de enseñar C++ me ha pasado un caso muy extraño:
///codigo:
include <stdio.h>
int main(){
// Para controlar las iteraciones.
int i;
// Para contar el numero de vocales.
int vocales = 0;
// Para guardar los caracteres que se leen por teclado.
char caracter;
// Repetir 10 veces (desde que i = 0, mientras i < 10)
for (i = 0; i < 10; i++){
// Imprimir
printf("Introduzca el caracter %i:\t", i + 1);
// Leemos un caracter
scanf("%c", &caracter);
// si el caracter leido es a,e,i,o,u,A,E,I,O,U
if (caracter == 'a' || caracter == 'A' || caracter == 'e' ||
caracter == 'E' || caracter == 'i' || caracter == 'I' || caracter ==
'o' || caracter == 'O' || caracter == 'u' || caracter == 'U'){
// Aumentamos en 1 el numero de vocales
vocales++;
} // fin if
} // fin for
// Imprimimos numero de vocales
printf("- Numero de Vocales: %i\n", vocales);
// Imprimimos numero de no vocales (10 - vocales)
printf("- Numero de Otros caracteres: %i\n", 10 - vocales);
} // fin main
Este código da error:
$ ./prueba
Introduzca el caracter 1: a
Introduzca el caracter 2: Introduzca el caracter 3: e
Introduzca el caracter 4: Introduzca el caracter 5: i
Introduzca el caracter 6: Introduzca el caracter 7: o
Introduzca el caracter 8: Introduzca el caracter 9: u
Introduzca el caracter 10: - Numero de Vocales: 5
- Numero de Otros caracteres: 5
en cambio
///codigo
#include <stdio.h>
int main(){
// Para controlar las iteraciones.
int i;
// Para contar el numero de vocales.
int vocales = 0;
// Para guardar los caracteres que se leen por teclado.
char caracter;
// Repetir 10 veces (desde que i = 0, mientras i < 10)
for (i = 0; i < 10; i++){
// Imprimir
printf("Introduzca el caracter %i:\t", i + 1);
// Leemos un caracter
scanf("%c", &caracter);
// si el caracter leido es a,e,i,o,u,A,E,I,O,U
if (caracter == 'a' || caracter == 'A' || caracter == 'e' ||
caracter == 'E' || caracter == 'i' || caracter == 'I' || caracter ==
'o' || caracter == 'O' || caracter == 'u' || caracter == 'U'){
// Aumentamos en 1 el numero de vocales
vocales++;
} // fin if
scanf("%c", &caracter); //Leemos el ENTER
} // fin for
// Imprimimos numero de vocales
printf("- Numero de Vocales: %i\n", vocales);
// Imprimimos numero de no vocales (10 - vocales)
printf("- Numero de Otros caracteres: %i\n", 10 - vocales);
} // fin main
este no:
$ ./prueba
Introduzca el caracter 1: a
Introduzca el caracter 2: e
Introduzca el caracter 3: i
Introduzca el caracter 4: o
Introduzca el caracter 5: u
Introduzca el caracter 6: q
Introduzca el caracter 7: q
Introduzca el caracter 8: q
Introduzca el caracter 9: q
Introduzca el caracter 10: q
- Numero de Vocales: 5
- Numero de Otros caracteres: 5
Alguien sabe como puedo corregir el primer código sin añadir
"scanf("%c", &caracter); //Leemos el ENTER"???
Gracias
____________________________________________
|
| David Barragán Merino
| E-mail: bameda en ARROBA@gmail.com
| Ingeniería Informática
| Universidad Carlos III Madrid
|____________________________________________
Más información sobre la lista de distribución Cconclase