1,题目
世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。
输入格式:
输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。
输出格式:
在一行中按照“yyyy-mm-dd”的格式给出年、月、日。
输入样例:
03-15-2017
输出样例:
2017-03-15
2,错误代码
#include<stdio.h>
int main() {
int a,b,c; scanf("%d-%d-%d",&a,&b,&c);
printf("%d-%d-%d", c, a, b);
return 0; }
3,分析
注意当月和日小于十天的情况
4,正确代码一
#include<stdio.h>
int main()
{
char a[10];
scanf("%s",a);
printf("%c",a[6]);
printf("%c",a[7]);
printf("%c",a[8]);
printf("%c",a[9]);
printf("%c",a[5]);
printf("%c",a[0]);
printf("%c",a[1]);
printf("%c",a[2]);
printf("%c",a[3]);
printf("%c",a[4]);
}
正确代码二
#include<stdio.h>
int main()
{
char str[20];
scanf("%s",str);
for(int i=6;i<=9;i++)
{
printf("%c",str[i]);
}
printf("-");
for(int i=0;i<=4;i++)
{
printf("%c",str[i]);
}
}
正确代码三
#include<stdio.h>
int main()
{
int month;
int day;
int year;
scanf("%d-%d-%d",&month,&day,&year);
if(year>=1900)
printf("%d-%02d-%02d\n",year,month,day);
return 0;
}
正确代码四
#include<stdio.h>
int main() {
int a,b,c; scanf("%d-%d-%d",&a,&b,&c);
printf("%04d-%02d-%02d", c, a, b);
return 0; }