定义一个日期(包括年、月、日)和时间(包括时、分、秒)的共用体,编程实现从键盘输入数据1,然后输入日期,并输出日期;从键盘输入数据2,然后输入时间,并输出时间
时间: 2024-03-25 09:38:32 浏览: 41
好的,以下是示例代码,实现了定义一个日期和时间的共用体,并从键盘输入数据后,输入日期和时间,并输出日期和时间:
```c
#include <stdio.h>
// 定义日期和时间的共用体
union DateAndTime{
struct{
int year;
int month;
int day;
}date;
struct{
int hour;
int minute;
int second;
}time;
};
int main()
{
union DateAndTime dt; // 声明一个日期和时间的共用体
int choice; // 选择输入日期还是时间的选项
printf("请选择输入日期(1)或时间(2):");
scanf("%d", &choice);
if(choice == 1){
printf("请输入日期(年-月-日):");
scanf("%d-%d-%d", &dt.date.year, &dt.date.month, &dt.date.day);
printf("日期为:%d年%d月%d日\n", dt.date.year, dt.date.month, dt.date.day);
}
else if(choice == 2){
printf("请输入时间(时:分:秒):");
scanf("%d:%d:%d", &dt.time.hour, &dt.time.minute, &dt.time.second);
printf("时间为:%d时%d分%d秒\n", dt.time.hour, dt.time.minute, dt.time.second);
}
else{
printf("输入选项错误!\n");
}
return 0;
}
```
在上面的示例代码中,我们首先定义了一个日期和时间的共用体 `DateAndTime`,其中包含了 `date` 和 `time` 两个结构体,分别表示日期和时间。接着,我们通过键盘输入 `choice`,来选择输入日期还是时间的选项,如果输入的是 1,则输入日期并输出日期;如果输入的是 2,则输入时间并输出时间;否则,输出提示信息。
在输入日期或时间时,我们使用了 `scanf` 函数,通过 `%d-%d-%d` 或 `%d:%d:%d` 的格式化字符串,来分别读取年、月、日或时、分、秒的值。最后,我们通过 `printf` 函数,输出读取到的日期或时间值。
注意,使用共用体需要注意数据的存储顺序和大小端问题,这里我们默认使用的是小端存储方式。如果需要在大端机器上使用,请相应地进行修改。
阅读全文