C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。
首先要先定义结构体类型,再定义相应的结构体变量,定义结构体类型的一般形式如下:
struct 结构体类型名{
数据类型1 成员1;
数据类型2 成员2;
...
};
在本次代码中,所需要定义的结构体是用于存放学生姓名,学号和成绩的,因此,结构体类型名为student。
struct student{
char name[50];
char xuehao[50];
char chengji[3];
};
结构体里面的变量也可以直接赋值,但是赋值之后不可以直接进行更改,如果需要更改,则需要调用其它函数,对结构体直接初始化的方式可以如下显示:
struct student{
int score;
int num;
char a[10];
}stu={20,10,"成绩a"};
引用结构体的某个成员一般形式如下:
stu.score
在本次代码需求中,是需要手动输入学生的姓名,学号和成绩的,因此我们使用scanf给结构体的变量进行赋值,使用代码如下:
struct student stu[3];
for(i=0;i<3;i++){
printf("请输入学生姓名:\n");
scanf("%s",stu[i].name);
printf("请输入学生学号:\n");
scanf("%s",stu[i].xuehao);
printf("请输入学生成绩:\n");
scanf("%s",stu[i].chengji);
}
以上是结构体的定义和引用。
下面简略的介绍一下冒泡排序,因为其他的排序方法还在学习使用当中。
冒泡排序是一种比较简单的排序算法,也是我大一的时候接触的最多的排序算法,在冒泡排序中需要进行两次for循环的比较,一次比较两个元素,如果当他们大小顺序错乱,与预期结果不一致,例如想要使数据从小到大排序,但是有的数据比其后的数据还要大,那么就属于错误顺序,这是需要将两个数据进行交换,以此来调整他们的排序。
for(int i=0;i<n;i++){
for(int j=0;j<n-1-i;j++){
if(j>i){
j=temp;
j=i;
i=temp;
}
}
}
冒泡排序运用到结构体当中也是类似,只是充当空元素的temp也要设置为结构体类型,在给学生成绩排序这个算法中体现的代码如下:
for(int j=0;j<3;j++){
for(int k=0;k<2-j;k++){
if(stu[j].chengji>stu[k].chengji){
temp=stu[j];
stu[j]=stu[k];
stu[k]=temp;
}
}
}
当然,在进行排序之后需要输出,在输出的时候不可以忘记利用for循环将所需要的结构体中的数据依次输出。
考研复习代码2……………………………………………………………………continue