数据结构day2(结构体)

该代码示例展示了如何在C语言中定义一个包含姓名、性别、工作和分数/职位的结构体,并使用typedef创建别名。程序通过输入函数获取用户数据,然后输出结构体信息。结构体中使用了联合体,使得工作为s时存储分数,为t时存储职位。
摘要由CSDN通过智能技术生成
  •  在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量指针数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

head.h 

#ifndef __STU_H__
#define __STU_H__

#include <stdio.h>
#include <stdlib.h>

typedef struct
{
  char name[20];
  char sex;
  char work;
  union
  {
    float score;
    char postion[20];
  };
} *person, Person;

void output(person p);

void input(person p);

#endif

main.c

#include "head.h"

void input(person p)
{
  printf("\n输入姓名:");
  scanf("%s", p->name);
  printf("\n输入性别(w/m):");

  scanf(" %c", &p->sex);

  printf("\n输入职业(s/t):");
  scanf(" %c", &p->work);
  if (p->work == 's')
  {
    printf("\n输入分数:");
    scanf("%f", &p->score);
  }
  else if (p->work == 't')
  {
    printf("\n输入职务:");
    scanf("%s", p->postion);
  }
}

void output(person p)
{
  if (p == NULL)
  {
    printf("输出失败\n");
  }
  printf("%s\t%c\t%c\t", p->name, p->sex, p->work);
  if (p->work == 's')
  {
    printf("%f\n", p->score);
  }
  else if (p->work == 't')
  {
    printf("%s\n", p->postion);
  }
}

void main()
{

  person p = (person)malloc(sizeof(Person));
  if (p == NULL)
  {
    printf("创建失败\n");
  }

  input(p);

  printf("name\tsex\twork\tsco or pos\n");

  output(p);

  free(p);
  p = NULL;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值