Le hice una segunda modificacion al codigo y me quede en que nose cmo hacer para que me quede el dia :(
#include <stdio.h>
#include <math.h>
int main(){
int mes,fecha,dia,año;
printf("Ingrese una fecha en el sig formato dd/mm/aa sin los / \n");
fflush(stdin);
scanf(" %d",&fecha);
año=(fecha%100);
dia=(fecha/10);
mes=(fecha/100)%100;
printf("El año es %d",año);
printf("El dia es %d",dia);
printf("El mes es %d",mes);
return 0;
}
Gracias por la ayuda y Saludos :-X
¿Te sirve?.
#include <stdio.h>
#include <math.h>
int main()
{
int dia, mes, ano;
char div = '\0';
printf("Ingrese una fecha en el sig formato dd/mm/aaaa (ejemplo: 21/01/1989)\n");
scanf("%d%c%d%c%d",&dia, &div, &mes, &div, &ano);
fflush(stdin);
printf("El año es %d\n",ano);
printf("El dia es %d\n",dia);
printf("El mes es %d\n",mes);
getchar();
return 0;
}
o tambien así como es lo que tu quieres...
#include <stdio.h>
#include <math.h>
int main(){
int mes,fecha,dia, ano;
printf("Ingrese una fecha en el sig formato dd/mm/aa sin los / \n");
scanf(" %d",&fecha);
fflush(stdin);
dia = (fecha / 10000);
mes = (fecha - (dia * 10000)) / 100;
ano = fecha - (dia * 10000) - (mes * 100);
printf("El año es %d\n",ano);
printf("El dia es %d\n",dia);
printf("El mes es %d\n",mes);
getchar();
return 0;
}
Dulces Lunas!¡.
¡Buenas!
El algoritmo que utilizas para sacar los datos de dia, mes y año (no utilices la ñ, para el compilador es un caracter estraño), no es correcto.
Si tienes un numero con el formato ddmmaa, tendras que el numero es:
aa * 1000 + mm * 1001 + dd * 1002 = num
Por lo tanto:
aa = num %100
mm = (num / 100) % 100
dd = (num / 1002)
Siemre suponiendo que el usuario ha introducido un numero de 6 digitos.
¡Saludos!
PD: Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
Cita de: BlackZeroX (Astaroth) en 27 Agosto 2012, 09:10 AM¿Te sirve?.
char div = '\0';
printf("Ingrese una fecha en el sig formato dd/mm/aaaa (ejemplo: 21/01/1989)\n");
scanf("%d%c%d%c%d",&dia, &div, &mes, &div, &ano);
Dos comentarios:
* Si el carácter a leer se descarta de inmediato se puede utilizar "%*c" con ese efecto y nos ahorramos una variable:
scanf("%d%*c%d%*c%d",&dia, &mes, &ano);
* Si se desea que el carácter separador sea si o si el '/' se puede indicar directamente:
scanf("%d/%d/%d",&dia, &mes, &ano);
Un saludo
Cita de: BlackZeroX (Astaroth) en 27 Agosto 2012, 09:10 AM
¿Te sirve?.
#include <stdio.h>
#include <math.h>
int main()
{
int dia, mes, ano;
char div = '\0';
printf("Ingrese una fecha en el sig formato dd/mm/aaaa (ejemplo: 21/01/1989)\n");
scanf("%d%c%d%c%d",&dia, &div, &mes, &div, &ano);
fflush(stdin);
printf("El año es %d\n",ano);
printf("El dia es %d\n",dia);
printf("El mes es %d\n",mes);
getchar();
return 0;
}
o tambien así como es lo que tu quieres...
#include <stdio.h>
#include <math.h>
int main(){
int mes,fecha,dia, ano;
printf("Ingrese una fecha en el sig formato dd/mm/aa sin los / \n");
scanf(" %d",&fecha);
fflush(stdin);
dia = (fecha / 10000);
mes = (fecha - (dia * 10000)) / 100;
ano = fecha - (dia * 10000) - (mes * 100);
printf("El año es %d\n",ano);
printf("El dia es %d\n",dia);
printf("El mes es %d\n",mes);
getchar();
return 0;
}
Dulces Lunas!¡.
Gracias BlackZeroX (Astaroth) ;D Me quedo cn el segundo codigo que es de la manera que lo estaba haciendo,gracias.
Do-while: SI jeje se me paso cuando lo pase aca, pero en el codigo lo tenia cmo ano y la ñ solo la utilize en el printf, igual gracias ;-)
Cita de: rir3760 en 27 Agosto 2012, 14:57 PM
* Si se desea que el carácter separador sea si o si el '/' se puede indicar directamente:
scanf("%d/%d/%d",&dia, &mes, &ano);
Un saludo
Gracias tambien a rir3760, no sabia que en el scanf se podia poner la / sin problemas. :D