|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
输入格式:
在一行中按照“yyyy.mm.dd”或“yy.mm.dd”的格式给出年、月、日。题目保证给出的日期是1900年元旦至今的合法的日期。
其中年可能为4位或2位,当年为2位数字时,默认为21世纪。例如:“01/2/23”表示“2001年2月23日”。
其中月份和日期可能为2位或1位数字。
输出格式:
在一行中按照“yyyy-mm-dd”的格式输出日期,其中年份为4位,月份和日期为2位,不够2位时用0补齐。
输入样例1:
2002.1.7
输出样例1:
2002-01-07
输入样例2:
03/07/1
输出样例2:
2003-07-01
这个题用c语言或者C++源代码要怎么写啊
问题解析:
这个问题需要将输入的日期格式转换成指定的输出格式。可以使用C或C++编写代码来解决。接下来我会给出相应的源代码。
算法思路:
1. 读取输入的日期字符串。
2. 使用适当的方法解析年、月和日的值。
3. 根据题目要求,判断年份是4位还是2位,进行必要的处理。
4. 将年、月、日格式化为指定的输出格式。
5. 输出结果。
以下分别给出C语言和C++的代码实现。
C语言代码:
- #include <stdio.h>
- int main() {
- int year, month, day;
- char separator;
-
- scanf("%d%c%d%c%d", &year, &separator, &month, &separator, &day);
-
- if (year < 100) {
- year += 2000;
- }
-
- printf("%04d-%02d-%02d\n", year, month, day);
-
- return 0;
- }
复制代码
C++代码:
- #include <iostream>
- #include <string>
- int main() {
- int year, month, day;
- char separator;
-
- std::cin >> year >> separator >> month >> separator >> day;
-
- if (year < 100) {
- year += 2000;
- }
-
- std::cout.fill('0');
- std::cout.width(4);
- std::cout << year << "-";
- std::cout.width(2);
- std::cout << month << "-";
- std::cout.width(2);
- std::cout << day << std::endl;
-
- return 0;
- }
复制代码
这些代码可以从标准输入读取日期,并将格式化后的结果输出到标准输出。希望对你有所帮助!如果你还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!  
|
|