《烟雨行舟》 运动成绩排名( 第14周课后习题)

第14周课后习题

运动成绩排名

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
设置输出宽度使用setw函数。
头文件:
//iomanip
例子:
cout<<setw(5)<<n<<setw(8)<<m<<endl;

这道题用两种方法写了函数,一个是头地址,一个是指针
法一:

#include <iostream>
#include <iomanip>
#include <string>
using namespace std; 
class Sport	
{
  public: 
       Sport() { }
	Sport(string n,double g)
	{
		num=n;
		grade=g;
	} 
	string num;	
	double grade;	
};	
void  gjh(Sport*s,int n)
{
	Sport * i,*j;   //用于排序(地址的方法)
	string index;
	double tempt;
	for(i=s;i<s+n-1;i++)
	{
		for(j=i+1;j<s+n;j++)
		{
			if(i->grade>j->grade)
			{
				tempt=i->grade;
				i->grade=j->grade;
				j->grade=tempt;   //成绩交换

				index=i->num;
				i->num=j->num;
				j->num=index;     //编号交换
			}
		}
	}
	int ID =1;
	for(i=s;i<s+n;i++,ID++)
	{
		cout<<setw(6)<<ID<<setw(6)<<i->num<<setw(6)<<i->grade<<endl;
	}
}

法二:

#include <iostream>
#include <iomanip>
#include <string>
using namespace std; 
class Sport	
{
  public: 
       Sport() { }
	Sport(string n,double g)
	{
		num=n;
		grade=g;
	} 
	string num;	
	double grade;	
};	
void gjh(Sport*s,int n)
{
	string index;
	double tempt;
	int i,j;
	for(i=0;i<n-1;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(s[i].grade>s[j].grade)
			{
				tempt=s[i].grade;
				s[i].grade=s[j].grade;
				s[j].grade=tempt;

				index=s[i].num;
				s[i].num=s[j].num;
				s[j].num=index;
			}
		}
	}
	int ID=1;
	for(i=0;i<n;i++,ID++)
		cout<<setw(6)<<ID<<setw(6)<<s[i].num<<setw(6)<<s[i].grade<<endl;
}
int main ()
{ 
	Sport players[20] = 
	{
    Sport("001", 13.6), Sport("002", 14.8), Sport("010", 12.0),
    Sport("011", 12.7), Sport("023", 15.6), Sport("025", 13.4),
    Sport("031", 14.9), Sport("036", 12.6), Sport("037", 13.4),
    Sport("102", 12.5), Sport("325", 15.3), Sport("438", 12.7)
    };
	Sport*s=&players[0];
	int n=12;
	gjh(s,n);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值