Buenas! Tengo una duda pequeña!
Hay un ejercicio en el libro "Fundamentos de Programación, Piensa en C" que he podido resolver en otros lenguajes pero no en C!
Necesito pedirle al usuario un número de 4 dígitos e imprimirlo verticalmente. Si digita "6532" imprime:
"6
5
3
2"
En Python era tan sencillo como hacer esto:
num=input("Ingrese un número de 4 dígitos: ")
print (num[0])
print (num[1])
print (num[2])
print (num[3])
En Java con hacer esto ya estaba:
String numero;
System.out.println("Ingrese un número de cuatro dígitos: ");
numero = lector.nextLine();
System.out.println(numero.charAt(0));
System.out.println(numero.charAt(1));
System.out.println(numero.charAt(2));
System.out.println(numero.charAt(3));
Pero no puedo en C. Sólo llevo esto:
#include <stdio.h>
int main(){
int numero;
printf("Ingrese un n%cmero de 4 d%cgitos: ",163,161);
scanf("%c", &numero);
printf("???????"); //No tengo idea de qué va aquí!
}
Hay alguna manera de hacerlo sin usar ciclos for? Gracias! ;-) ;-) ;-)
El número 4578:
4578 % 10 = 8
4578 / 10 = 457 457 % 10 = 7
457 / 10 = 45 45 % 10 = 5
45 / 10 = 4 4 % 10 = 4
En cada división por 10 del anterior, se realiza truncamiento. Léelo de abajo hacia arriba. Es el problema con los lenguajes de alto nivel, que te acostumbras a que esté todo hecho. No es necesario ningún ciclo for, si sabes que es de 4 dígitos solo tienes que aplicar la matemática del revés pero voy a dejar que te comas tú el tarro :-D
Además para leer un entero en C, el especificador de formato en el scanf no es %c, es %d o %i (para el formato en base 10). El %c es para leer un único caracter.
Un saludo.
Hazlo igual que en Java y Python: píllalo como cadena con %s en el scanf e imprime cada caracter con notación de array, como en Python.
pues lo mismo que haces en python(que por cierto da asco ese método que usas,¿por qué sin for?)
creo que de python no entendiste demasiado, ya que ahora es básicamente lo mismo
en c:
#include <stdio.h>
#include <string.h>
int main(){
char numero[4];
printf("Ingrese un n%cmero de 4 d%cgitos: ",163,161);
scanf("%s",numero); //no es integer, en python tampoco por cierto
printf("%c\n",numero[0]); //No tengo idea de qué va aquí!
printf("%c\n",numero[1]);
printf("%c\n",numero[2]);
printf("%c\n",numero[3]);
return 0;
}