初学者C语言练习题-结构体

五、结构体

 

在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:

struct 结构体名{
    结构体所包含的变量或数组
};

结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。请看下面的一个例子:

struct stu{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在学习小组
float score; //成绩
};

stu 为结构体名,它包含了 5 个成员,分别是 name、num、age、group、score。结构体成员的定义方式与变量和数组的定义方式相同,只是不能初始化。

注意大括号后面的分号 ;不能少,这是一条完整的语句。

结构体也是一种数据类型,它由程序员自己定义,可以包含多个其他类型的数据。

像 int、float、char 等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据类型;而结构体可以包含多个基本类型的数据,也可以包含其他的结构体,我们将它称为复杂数据类型或构造数据类型。

 

1、输入3个学生的学号,姓名,成绩,按照成绩降序排列

#include "stdio.h"

typedef struct student

{
    int num;
    char name[12];
    int score;
}a[3];

int main()

{
    struct student a[3];
    int i,j;

    struct student t;
    
    for(i=0;i<3;i++)

    {
scanf("%d %s %d ",&a[i].num,&a[i].name,&a[i].score);
}

    
    for(j=0;j<2;j++)
    {
        for(i=0;i<2-j;i++)
        
     {
 if((a[i].score) < (a[i+1].score))
            
      {
t=a[i];
  a[i]=a[i+1];
   a[i+1]=t;
   }
        }
    }
    
     for(i=0;i<3;i++)
    
     {
printf("%d %s %d\n",a[i].num,a[i].name,a[i].score);
    }

    return 0;
}

2、把初始代码中的结构数组作为参数传递给函数print,并在函数中打印出结构体数组的内容;

jone 12345 339.0 david 13916 449.0 marit 27519 311.0 yoke 12335 511.0

#include "stdio.h"
struct person 
{
	char name[20];
	double num;
	double grade;
};
int fun(struct person n)
{
		printf("%s %.2lf %.2lf\n", n.name, n.num,n.grade);
	return 0;
}
int main()
{
	struct person a[4]={"jone",12345,339.0,"david",13916,449.0,"marit",27519,311.0,"yoke",12335,511.0};
	int i;
	for(i=0;i<4;i++)
		fun(a[i]);
	return 0;
}

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雄是个程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值