结构体可以封装多种类型的数据,将多种数据类型组合成一个数据类型。C语言中有int、char、float、double等等数据类型,但是这些类型都是分开的。这里我们就可以使用结构体将这些数据类型组合成一个数据类型来使用,这样可以让我们更方便的将多种数据类型捆绑在一起使用(详情可以看一下中国大学生慕课苏小红老师讲的C语言课程)。比如,你可以将一个学生的姓名、学号、成绩等信息使用结构体组合在一起使用,可能我这样说还是说的不太清楚,那么看一下代码就明白了。下面我们将学生的姓名和成绩使用结构体组合在一起,然后按照成绩的高低输出所有的学生的姓名以及他们的成绩:
先看一下输出结果:
代码:
#include<iostream>
#include<stdio.h>
using namespace std;
typedef struct student{
char name[10];
double score;
}STU;
int main(){
int n,i,j; //输入n表示一共输入几个学生的信息
//声明一个结构体数组来存储信息,以及一个结构体类型的temp来交换信息
STU stu[10],temp;
cin>>n;
//依次输入学生的姓名和成绩
for(i=0;i<n;i++){
scanf("%s %lf",stu[i].name,&stu[i].score);
}
cout<<endl;
cout<<"成绩由高到低的顺序为:"<<endl;
//根据学生的成绩来进行排序
for(i=0;i<n-1;i++){
for(j=0;j<n;j++){
if(stu[j].score < stu[j+1].score){
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
}
}
//输出成绩单
for(i=0;i<n;i++){
cout<<stu[i].name<<" "<<stu[i].score<<endl;
}
return 0;
}