注册 登录
编程论坛 C语言论坛

结构体问题

fengyinxqy 发布于 2020-05-23 12:59, 1537 次点击
编写程序,定义教师信息的结构体类型,成员包括工资卡号、姓名、性别、出生年月(年/月)、婚姻状态(未婚/已婚/离异,采用共用体类型表示)以及工作部门等。输入教师信息并输出。
程序代码:
#include <stdio.h>
#include <math.h>
struct teacher
{
    int gznum;                    /* 工资卡号 */
    char name[20];               /* 姓名 */
    int sex;                     /* sex=1(男),0(女) */
    int year,month;             /* 出生年月 */
    union marriage
    {
        char marriage[20];
    }u1,u2;
}teachers;
int main()
{
    printf("Enter gznum:\n");
    scanf("%d",&teachers.gznum);
    printf("Enter name:\n");
    scanf("%s",&teachers.name[20]);
    printf("Enter sex(1/0):\n");
    scanf("%d",&teachers.sex);
    printf("Enter born of year-month:\n");
    scanf("%d-%d",&teachers.year,&teachers.month);

    printf("%d\t%s\t%d\t%d-%d\t%d\n",teachers.gznum,teachers.name[20],teachers.sex,teachers.year,teachers.month,teachers.u1.marriage[20]);
    return 0;
}


上面是我的代码,不知道哪里错了,输出不了,才开始学结构体,还不是太会。
1 回复
#2
rjsp2020-05-23 13:32
scanf("%s",&teachers.name[20]);
改为
scanf("%s",teachers.name);

printf("%d\t%s\t%d\t%d-%d\t%d\n",teachers.gznum,teachers.name[20],teachers.sex,teachers.year,teachers.month,teachers.u1.marriage[20]);
改为
printf("%d\t%s\t%d\t%d-%d\t%s\n",teachers.gznum,teachers.name,teachers.sex,teachers.year,teachers.month,teachers.u1.marriage);

其它没仔细看
1