Buenas, tengo que hacer un ejercicio que pide lo siguiente:
Escribir un programa que recibe por teclado diez caracteres de uno en uno, que admite letras,
dígitos (‘0’..’9’), espacios en blanco, etc. y calcula y visualiza por pantalla:
- Número de letras que se han introducido.
- Número de dígitos que se han introducido.
- Número de espacios en blanco.
- Número de vocales.
- Número de caracteres que no son letras, ni dígitos, ni espacios en blanco.
Y lo he planteado así:
#include <stdio.h>
main(){
char digits[10],lost;
int n,i=0,let=0,dig=0,std=0,voc=0,other=0;
for (n=0;n<10;n++){
printf("Introduzca un caracter: ");
scanf("%c",&digits[i]);
scanf("%c",&lost);
i++;
}
for (i=0;i<10;i++){
if (48<=digits[i]<=57)
dig++;
else if(97<=digits[i]<=122)
let++;
else if(digits[i]==160)
std++;
else if((digits[i]==97)||(digits[i]==101)||(digits[i]==105)||(digits[i]==111)||(digits[i]==117))
voc++;
else
other++;
}
printf("Ha introducido %d vocales %d digitos %d letras %d espacios y %d irreconocidos",voc,dig,let,std,other);
PERO SIEMPRE,SIEMPRE, me salen 10 digitos, ponga lo que le ponga. ¿Alguna idea?