定义一个结构体,包括姓名,性别,出生年月日等信息,输入这些信息
时间: 2024-04-06 16:11:12 浏览: 93
,然后输出该结构体的信息。
好的,这是一个很基础的问题。可以定义一个如下的结构体:
```c
struct person {
char name[20];
char gender[5];
int year;
int month;
int day;
};
```
然后输入和输出可以使用如下代码:
```c
struct person p;
printf("请输入你的姓名:");
scanf("%s", p.name);
printf("请输入你的性别:");
scanf("%s", p.gender);
printf("请输入你的出生年月日(形如19990909):");
scanf("%4d%2d%2d", &p.year, &p.month, &p.day);
printf("你的信息为:\n");
printf("姓名:%s\n", p.name);
printf("性别:%s\n", p.gender);
printf("出生日期:%d年%d月%d日\n", p.year, p.month, p.day);
```
希望这个回答能对你有所帮助。
相关问题
做个简单的结构体嵌套吧。设计结构体,包含学生姓名、性别、出生日期。其中出生日期又包含年、月、日三部分信息。 输入要求 输入学生姓名、性别、出生日期。 输出要求 输出学生姓名、性别、出生日期。 输入样例 Susan Wang f 1992 7 26 输出样例 Susan Wang f 1992 7 26 模板 #include<stdio.h> @-@ //设计表示出生日期的结构体,包含成员:年、月、日 @-@ //设计表示学生信息的结构体,包含成员:姓名、性别、出生日期。该结构体别名为STU int main() { STU s; @-@ //设计语句输入学生的姓名、性别、出生日期 puts(s.name); printf("%c\n",s.gender); printf("%d %d %d\n",s.date.y,s.date.m,s.date.d); return 0; } 提示 将出生日期也设计成一个结构体。姓名长度不超过20个字符。 补充@-@处的内容
一个可能的解决方案如下所示:
```
#include <stdio.h>
//定义结构体类型DATE,包含年、月、日
typedef struct {
int y;
int m;
int d;
} DATE;
//定义结构体类型STU,包含姓名、性别和出生日期
typedef struct {
char name[21];
char gender;
DATE date;
} STU;
int main() {
STU s;
//输入学生姓名、性别、出生日期
scanf("%s %c %d %d %d", s.name, &s.gender, &s.date.y, &s.date.m, &s.date.d);
//输出学生姓名、性别、出生日期
printf("%s %c %d %d %d\n", s.name, s.gender, s.date.y, s.date.m, s.date.d);
return 0;
}
```
在这个程序中,我们首先定义了一个结构体类型DATE,包含年、月、日。然后定义了一个结构体类型STU,包含姓名、性别和出生日期。在主函数中,我们定义了一个STU类型的变量s,并通过scanf函数输入学生姓名、性别、出生日期。最后,我们通过printf函数输出了学生姓名、性别、出生日期。
分别将出生日期以及员工信息定义为结构体数据类型,定义结构体变量, 从键盘输入员工信息:姓名,性别和出生日期,计算员工 2023 年的年龄,并输 出所有信息。
下面是C++代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Date {
int year;
int month;
int day;
};
struct Employee {
string name;
char sex;
Date birthday;
};
int main() {
Employee emp;
cout << "请输入员工姓名:";
getline(cin, emp.name);
cout << "请输入员工性别(M/F):";
cin >> emp.sex;
cout << "请输入员工出生日期(格式为YYYY/MM/DD):";
scanf("%d/%d/%d", &emp.birthday.year, &emp.birthday.month, &emp.birthday.day);
// 计算员工2023年的年龄
int age = 2023 - emp.birthday.year;
if (emp.birthday.month > 9 || (emp.birthday.month == 9 && emp.birthday.day > 1)) {
age--;
}
// 输出员工信息
cout << "员工姓名:" << emp.name << endl;
cout << "员工性别:" << emp.sex << endl;
cout << "员工出生日期:" << emp.birthday.year << "/" << emp.birthday.month << "/" << emp.birthday.day << endl;
cout << "员工2023年的年龄:" << age << endl;
return 0;
}
```
输入示例:
```
请输入员工姓名:张三
请输入员工性别(M/F):M
请输入员工出生日期(格式为YYYY/MM/DD):1995/04/30
```
输出示例:
```
员工姓名:张三
员工性别:M
员工出生日期:1995/4/30
员工2023年的年龄:28
```
阅读全文