学习

来源:互联网 发布:大数据与人工智能 编辑:程序博客网 时间:2024/06/01 10:26

1、C和C++中struct不同:

C中struct结构体中是不能声明函数,而C++中的结构体是可以声明函数的。

2、struct和class的不同:

结构体默认情况下成员是public,而在class中成员默认的是private。

3、qsort函数

1)声明

void qsort(void *base,size_t num,size_t width,int (*fcmp)(const void *,const void *));

2)参数说明

base:待排序的数组

num:数组个数

width:单个元素所占的大小

fcmp:指向比较函数的函数指针(自己实现)

4、setw(n)

1)用到的头文件是#include <iomanip>

2)函数说明:设置输出字符宽度,n表示相应的值,默认是右对齐,可以使用cout.setf(ios::left);这种方式设置输出为左对齐。

5、练习代码:

示例说明:利用快排方式来排序球队名词,首先是按照球队的积分高低排名,积分相同的则按照净胜球排名,净胜球相同按照进球数排名,如果净胜球也还相同的话,按照球队名称排序。


</pre><pre name="code" class="cpp">#include <iostream>#include <iomanip>//头文件是用setw用的using namespace std;struct FootballTeam{char TeamName[20];//队名int nPoint;//积分int nAddBall;//净胜球int nInBall;//进球数}Team[10];int comp(const void* p1,const void* p2){FootballTeam * t1 = (FootballTeam*)p1;FootballTeam * t2 = (FootballTeam*)p2;int n1 = t1->nPoint - t2->nPoint;int n2 = t1->nAddBall - t2->nAddBall;int n3 = t1->nInBall - t2->nInBall;if(n1)return n1;else if(n2)return n2;else if(n3)return n3;elsereturn strcmp(t1->TeamName,t2->TeamName);}int main(){int nNum = 0;cout << "请输入球队数量:";cin >> nNum;cout << "输入球队积分信息:" <<endl;for (int i = 0;i <nNum;i++){cin >>Team[i].TeamName >> Team[i].nPoint >>Team[i].nAddBall >>Team[i].nInBall;}qsort(Team,nNum,sizeof(FootballTeam),comp);cout << endl;cout.setf(ios::left);cout << setw(10) << "队名" << setw(10) << "积分" << setw(10) << "净胜球" << setw(10) << "进球数" << endl;for(int n = nNum - 1;n >= 0 ;n--){cout.setf(ios::left);cout << setw(10) << Team[n].TeamName << setw(10) <<Team[n].nPoint << setw(10) << Team[n].nAddBall << setw(10) <<   Team[n].nInBall << endl;}cout << endl;return 0;}



0 0
原创粉丝点击