C语言初学者求解,按以下格式输入一个整数表示的生日yyyymmdd,找出其中的年月日,并按以下格式输出

1. 按以下格式输入一个整数表示的生日yyyymmdd,找出其中的年月日,并按以下格式输出:Y=yyyy, M=mm,D=dd。比如当输入整数为19901203时,则输出:Y=1990, M=12, D=3 怎么写 帮个忙 想了好久都没想出来怎么写 在线等

#include<stdio.h>

#include<string.h>

void main()

    long i = 0, y, m, d;

 scanf("%ld", &i);

 

 d = i%100;

 m = (i/100)%100;

 y = i/10000;

 printf("Y = %ld, M = %ld, D = %ld\n", y, m, d);

 

}

 

运行结果:

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-26
调试无误 可以直接COPY去验证。
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
void main()
{
char a[10]={0};
int i;
char y[5]={0};
char m[3]={0};
char d[3]={0};
printf("请输入一个整数表示的生日yyyymmdd:\n");
gets(a);
if(strlen(a)!=8)
{
printf("输入错误\n");
return ;
}

for(i=0;i<strlen(a);i++)
{
if(a[i]<'0'||a[i]>'9')
{
printf(" 输入错误");
return ;
break;
}
}
strncpy(y,a,4); strncpy(m,a+4,2);
strncpy(d,a+6,2);
printf("Y=%d,M=%d,D=%d\n",atoi(y),atoi(m),atoi(d));

}
第2个回答  2013-03-26
#include<stdio.h>
void main()
{
int i;
scanf("%d",&i);
int Y=i/10000;
i=i%10000;
int M=i/100;
i=i%10;
int D=i;
printf("Y=%d M=%d D=%d",Y,M,D);
}

望采纳 格式输入限制大本回答被提问者采纳
第3个回答  2013-03-26
#include<stdio.h>
int main()
{
char date[10];
int year;
int mon;
int day;
printf("请输入日期:");
scanf("%s",date);
sscanf(date,"%4d%2d%*[0]%d",&year,&mon,&day);
printf("Y=%d,M=%d,D=%d\n",year,mon,day);
}

看看能不能行哈,我测试可以
第4个回答  2013-03-26
你好
scanf(%d,&date);
y=date/10000;
date=date - y * 10000;
m= date/100;
date=date - m * 100;
d= date;
手机码字,不容易
相似回答