C语言结构体+冒泡排序做一个简单的成绩单排序程序

本文介绍了C语言中结构体的使用方法,通过一个学生信息排序的例子,展示了如何使用结构体来封装和操作多种数据类型,包括姓名和成绩。代码实现了输入学生信息,并按成绩从高到低排序输出。

结构体可以封装多种类型的数据,将多种数据类型组合成一个数据类型。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;
		 
}

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

晴空๓

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

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

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

打赏作者

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

抵扣说明:

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

余额充值