任务描述
文档中填写日期时不同的人有不同的书写习惯,很多人习惯用小数点或其它字符作为分隔符,例如“2002.01.07”、“2002/1/7”、“02:01:7”都表示2002年1月7日。赵中瑞同学患有强烈的日期格式强迫症,当他看到一个日期时,一定会改写成形如“2002-01-07”的形式。下面请你写个程序,自动把读入的其它格式的日期改写成用“-”分隔的日期形式。
输入格式:
输入在一行中按照“abcd.mm.dd”或“ab.mm.dd”的格式给出年、月、日。题目保证给出的日期是1900年元旦至今的合法的日期。
其中年可能为4位或2位,当年为2位数字时,默认为20世纪。例如:“76/2/23”表示“1976年2月23日”。
其中月份和日期可能为2位或1位数字。
输出格式:
在一行中按照“abcd-mm-dd”的格式输出日期,其中年份为4位,月份和日期为2位,不够2位时用0补齐
这警告提示,是提示 scanf()函数返回值没有处理,修改如下,供参考:
#include <stdio.h>
int main()
{
int a,b,c,ret;
ret = scanf("%d.%d.%d",&a,&b,&c);//输入在一行中按照“abcd.mm.dd”或“ab.mm.dd”的格式 修改
if (ret == 3){ //修改 scanf() 函数返回值处理
if ((a/100) == 0) //修改
a += 1900; //修改
printf("%d-%02d-%02d",a,b,c);
}
else
printf("Input error."); //修改
return 0;
}
没错误啊,这就是个警告,不影响的
100以内的数除以100怎么会小于0??
#include<stdio.h>
int main(){
int a,b,c;
scanf("%d.%d.%d",&a,&b,&c);
if ((a / 100) > 0){
printf("%d-%02d-%02d",a,b,c);
}
else{
// 100以内
printf("19%d-%02d-%02d",a,b,c);
}
return 0;
}