C语言结构体课堂总结
2017-07-20 08:39
225 查看
假设班级有10名学生,在一次考试后我想录入他们的姓名、学号及数学语文和英语成绩,录入完成后想让电脑自动计算并按总成绩由高到低的顺序输出成绩单。
要解决以上问题我们先看看数据得如何定义,按我们目前学习的知识得定义好几个数组分别用来存储各科成绩和学号,姓名就更难存储了,因为一个姓名就得是一个字符数组。
如果有一个数据类型能够一次存储一个学生的信息就好了。
下面就来讲解构建这样的结构类型。
1. typedef 命令
这个命令用来给一个数据类型起新的名称。
如果你在编程中不喜欢打int 那你可以给int 起一个别名例如zhengshu,请看下面的例子。
#include "stdlib.h"
#include "stdio.h"
typedef int zhengshu; //给int 这个数据类型起个另外的称呼 zhengshu,注意这里以分号为结尾。main()
{
zhengshu a;//这里跟int a是一样的
zhengshu b;
zhengshu c;
printf("请输入第一个整数:");
scanf("%d",&a);
printf("请输入第二个整数:");
scanf("%d",&b);
c=a+b;
printf("两个整数的和是%d ",c);
}
通过这个小例子你也许明白了typedef就是给已经存在的数据类型起一个新的名称。
2. struct 结构定义命令
结构简单说就是若干基础数据类型的组合,比如我定义一个由整型和浮点型组成的结构就可以这样写:struct { int a; float b; }
这样写有两个意思
1》表示这个结构是由一个整型和一个浮点型组成的。
2》用变量a来表示这个整数用变量b来表示这个浮点数。
但这个结构还没有名字,我们可以用tepdef来给这个结构类型起名字。
tepdef struct { int a; float b; } T;
这样以后在程序中T就表示一个结构数据类型,定义变量就可以这样写: T t1;
t1就是一个结构变量,t1可以存储一个整数和一个浮点数,其中的整数是t1里的a,浮点数是t1里的b。
3. 成员访问运算符"."
上面说的t1里的a 就写成t1.a ,t1里的b 就写成t1.b
请看下面的小例子:
#include "stdlib.h"
#include "stdio.h"
typedef struct{ int a; float b; } T;
main()
{
T t1;
printf("请输入一个整数:");
scanf("%d",&t1.a);
printf("请输入一个浮点数");
scanf("%f",&t1.b);
printf("T是一个结构类型,t1是一个结构类型的变量,t1里的整数是%d,t1里的浮点数是%f ",t1.a,t1.b);
}
上面的小例子明白了后,我们就可以定义一个学生类型的结构了。请看下面的例子:
typedef struct{
char name[10];//姓名
char no[5];//学号
float math;//数学成绩
float chinese;//语文成绩
float english;//英语成绩
}Student;//学生结构类型名
main()
{
Student stu1;//定义一个学生结构类型变量stu1,你可以认为stu1是由5个变量组成的复合变量 printf("输入姓名:");
scanf("%s",stu1.name);//访问stu1里的name成员变量,注意这里name是字符数组所以不加&
printf("输入学号:");
scanf("%s",stu1.no);//访问stu1里的no成员变量
printf("输入数学成绩:");
scanf("%f",&stu1.math);//访问stu1里的math成员变量
printf("输入语文成绩:");
scanf("%f",&stu1.chinese);//访问stu1里的chinese成员变量
printf("输入英语成绩:");
scanf("%f",&stu1.english);//访问stu1里的english成员变量
printf("%s的总分是%.2f ",stu1.name,stu1.math+stu1.chinese+stu1.english);
}
要解决以上问题我们先看看数据得如何定义,按我们目前学习的知识得定义好几个数组分别用来存储各科成绩和学号,姓名就更难存储了,因为一个姓名就得是一个字符数组。
如果有一个数据类型能够一次存储一个学生的信息就好了。
下面就来讲解构建这样的结构类型。
1. typedef 命令
这个命令用来给一个数据类型起新的名称。
如果你在编程中不喜欢打int 那你可以给int 起一个别名例如zhengshu,请看下面的例子。
#include "stdlib.h"
#include "stdio.h"
typedef int zhengshu; //给int 这个数据类型起个另外的称呼 zhengshu,注意这里以分号为结尾。main()
{
zhengshu a;//这里跟int a是一样的
zhengshu b;
zhengshu c;
printf("请输入第一个整数:");
scanf("%d",&a);
printf("请输入第二个整数:");
scanf("%d",&b);
c=a+b;
printf("两个整数的和是%d ",c);
}
通过这个小例子你也许明白了typedef就是给已经存在的数据类型起一个新的名称。
2. struct 结构定义命令
结构简单说就是若干基础数据类型的组合,比如我定义一个由整型和浮点型组成的结构就可以这样写:struct { int a; float b; }
这样写有两个意思
1》表示这个结构是由一个整型和一个浮点型组成的。
2》用变量a来表示这个整数用变量b来表示这个浮点数。
但这个结构还没有名字,我们可以用tepdef来给这个结构类型起名字。
tepdef struct { int a; float b; } T;
这样以后在程序中T就表示一个结构数据类型,定义变量就可以这样写: T t1;
t1就是一个结构变量,t1可以存储一个整数和一个浮点数,其中的整数是t1里的a,浮点数是t1里的b。
3. 成员访问运算符"."
上面说的t1里的a 就写成t1.a ,t1里的b 就写成t1.b
请看下面的小例子:
#include "stdlib.h"
#include "stdio.h"
typedef struct{ int a; float b; } T;
main()
{
T t1;
printf("请输入一个整数:");
scanf("%d",&t1.a);
printf("请输入一个浮点数");
scanf("%f",&t1.b);
printf("T是一个结构类型,t1是一个结构类型的变量,t1里的整数是%d,t1里的浮点数是%f ",t1.a,t1.b);
}
上面的小例子明白了后,我们就可以定义一个学生类型的结构了。请看下面的例子:
typedef struct{
char name[10];//姓名
char no[5];//学号
float math;//数学成绩
float chinese;//语文成绩
float english;//英语成绩
}Student;//学生结构类型名
main()
{
Student stu1;//定义一个学生结构类型变量stu1,你可以认为stu1是由5个变量组成的复合变量 printf("输入姓名:");
scanf("%s",stu1.name);//访问stu1里的name成员变量,注意这里name是字符数组所以不加&
printf("输入学号:");
scanf("%s",stu1.no);//访问stu1里的no成员变量
printf("输入数学成绩:");
scanf("%f",&stu1.math);//访问stu1里的math成员变量
printf("输入语文成绩:");
scanf("%f",&stu1.chinese);//访问stu1里的chinese成员变量
printf("输入英语成绩:");
scanf("%f",&stu1.english);//访问stu1里的english成员变量
printf("%s的总分是%.2f ",stu1.name,stu1.math+stu1.chinese+stu1.english);
}
相关文章推荐
- 结构体__C语言学习内容总结2017/11/25
- 【IOS 开发学习总结-OC-7.5】objective-c 的c语言特性——结构体
- C语言学习内容总结2017/11/21(结构体)
- 结构体__C语言学习内容总结2017/11/25
- 文档总结21-C语言中的结构体与内核宏
- C语言高频面试题之sizeof与指针和结构体专题总结
- C语言学习内容总结2017/11/21(结构体)
- C语言__结构体总结
- C语言 结构体与结构体指针用法总结
- 【C语言总结】结构体、联合、枚举
- C语言的指针、数据、结构体关系总结
- c语言第二周总结-结构体
- C语言高频面试题之sizeof与指针和结构体专题总结
- 黑 马 程 序 员_视频学习总结<C语言>----05 结构体
- C语言 ---- 函数 结构体 iOS学习-----细碎知识点总结
- 黑马程序员-c语言总结(结构体)
- 读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组
- 黑马程序员-C语言结构体总结
- C语言零碎知识点总结(结构体)
- 数组结构体总结(C语言)