根据打分排序网站源代码(各种排序代码)
admin 发布:2022-12-19 16:08 151
本篇文章给大家谈谈根据打分排序网站源代码,以及各种排序代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、用C++做程序有10个评委打分,试对10个分数排序,并求这位选手的平均分(去掉一个最高分和一个最低分)
- 2、Java几种简单的排序源代码
- 3、谁能帮我写下大合唱评分系统的C++源代码
- 4、急求评委打分 c++源程序
用C++做程序有10个评委打分,试对10个分数排序,并求这位选手的平均分(去掉一个最高分和一个最低分)
1楼用到了泛型算法sort如果你要是不懂得话,可以自己编写一个排序冒泡啊之类的都可以我这里给你一个#include iostream
using namespace std;
//冒泡排序,升序排列,时间复杂度O(n^2),如果原始数据已经有序则复杂度为n
void bubblesort(int r[],int n)
{
int i,j,flag;
for (i=1;i=n;i++)
{
flag=1; //设置交换标志,flag=1时为未交换
for (j=1;j=n-i;j++)
if (r[j+1]r[j])
{
flag=0; //已交换
r[0]=r[j];r[j]=r[j+1];r[j+1]=r[0];
}
if (flag !=0) break; //未交换,排序结束
}
}
int main ()
{
const int maxsize=10;
int r[maxsize+1];
for (int i=1;i=maxsize;i++)
{
cinr[i];
}
bubblesort (r , maxsize);
for ( i=1;i=maxsize;i++)
{
coutr[i]endl;
}
return 1;
}
Java几种简单的排序源代码
给你介绍4种排序方法及源码,供参考
1.冒泡排序
主要思路: 从前往后依次交换两个相邻的元素,大的交换到后面,这样每次大的数据就到后面,每一次遍历,最大的数据到达最后面,时间复杂度是O(n^2)。
public static void bubbleSort(int[] arr){
for(int i =0; i arr.length - 1; i++){
for(int j=0; j arr.length-1; j++){
if(arr[j] arr[j+1]){
arr[j] = arr[j]^arr[j+1];
arr[j+1] = arr[j]^arr[j+1];
arr[j] = arr[j]^arr[j+1];
}
}
}
}
2.选择排序
主要思路:每次遍历序列,从中选取最小的元素放到最前面,n次选择后,前面就都是最小元素的排列了,时间复杂度是O(n^2)。
public static void selectSort(int[] arr){
for(int i = 0; i arr.length -1; i++){
for(int j = i+1; j arr.length; j++){
if(arr[j] arr[i]){
arr[j] = arr[j]^arr[i];
arr[i] = arr[j]^arr[i];
arr[j] = arr[j]^arr[i];
}
}
}
}
3.插入排序
主要思路:使用了两层嵌套循环,逐个处理待排序的记录。每个记录与前面已经排好序的记录序列进行比较,并将其插入到合适的位置,时间复杂度是O(n^2)。
public static void insertionSort(int[] arr){
int j;
for(int p = 1; p arr.length; p++){
int temp = arr[p]; //保存要插入的数据
//将无序中的数和前面有序的数据相比,将比它大的数,向后移动
for(j=p; j0 temp arr[j-1]; j--){
arr[j] = arr[j-1];
}
//正确的位置设置成保存的数据
arr[j] = temp;
}
}
4.希尔排序
主要思路:用步长分组,每个分组进行插入排序,再慢慢减小步长,当步长为1的时候完成一次插入排序, 希尔排序的时间复杂度是:O(nlogn)~O(n2),平均时间复杂度大致是O(n^1.5)
public static void shellSort(int[] arr){
int j ;
for(int gap = arr.length/2; gap 0 ; gap/=2){
for(int i = gap; i arr.length; i++){
int temp = arr[i];
for(j = i; j=gap temparr[j-gap]; j-=gap){
arr[j] = arr[j-gap];
}
arr[j] = temp;
}
}
}
谁能帮我写下大合唱评分系统的C++源代码
---SetScore.h 是头文件呀,你要放到头文件中呀--本程序有两个文件组成,1个头文件SetScore.h 与1个源文件SetScore.cpp----
//我的是用C++做的。 vc6测试通过--------------
//SetScore.h
#ifndef SETSCORE_H_
#define SETSCORE_H_
#include string
using namespace std;
class Umpire //裁判类
{
public:
Umpire();
~Umpire();
bool SetScore();
void GetName();
int GetScore();
private:
int m_Score;
string m_szName_Umpire;
};
struct Singer //歌手类 (你可以改成合唱队)
{
string szName_Singer;
int MaxScore;
int MinScore;
double AveScore;
int Grade;
};
#endif//SETSCORE_H_
//SetScore.cpp---类与结构的实现文件。
#include iostream
#include string
#include vector
#include algorithm
#include "SetScore.h"
using namespace std;
//------------------------裁判类的实现---------------------
Umpire::Umpire()
:m_szName_Umpire("No Name"),m_Score(0)
{}
void Umpire::GetName()
{
string name;
cinname;
m_szName_Umpire=name;
}
bool Umpire::SetScore()
{
//cout"Please Set Scores for Singer:[60,100]."endl;
int score;
cinscore;
if(score60||score100)
{
cout"你输入了一个非法值。请输入在[60,100]中的一个整数值。"endl;
return false;
}
m_Score=score;
return true;
}
int Umpire::GetScore()
{
return m_Score;
}
Umpire::~Umpire()
{}
//------------------------歌手类的实现---------------------
//本想也做一个类的,但考虑到顺便练习一下结构的使用,
//就没做类了。这里的成员第一次使用时都将是左值,因此就不初始化了。
//Singer.AveScore=0;
//-------------------全局函数声明--------------------------
int main()
{
//--------------裁判和歌手的信息初始化---=-------------
const int nUmpireNum=4;//最少要有3名裁判。否则不能去掉最高与最低分。
const int nSingerNum=2;
//------------------- 构造一个容器,用来将得分排序-----
vectordouble vec;
//-------------------裁判------------------------------
cout"\n=====================裁判======================\n";
Umpire *pUmpire=new Umpire[nUmpireNum];
//Umpire umpire[nUmpireNum];
for(int i=0;inUmpireNum;++i)
{
cout"Please Input a name for The ("i+1"/"nUmpireNum") Umpire :"endl;
pUmpire[i].GetName();
}
//-------------------歌手------------------------------
cout"\n=====================歌手======================\n";
Singer singer[nSingerNum];
Singer* pSinger=singer;
for(int j=0;jnSingerNum;++j)
{
cout"Please Input a name for The ("j+1"/"nSingerNum") Singer :"endl;
string name;
cinname;
pSinger[j].szName_Singer=name;
}
//-------------------打分过程----------------------
int nGetScorePerson(0);
while(nGetScorePersonnSingerNum)
{
cout"现在请给第 "nGetScorePerson+1"位歌手打分[60,100](共"nSingerNum"位):"endl;
int nScore[nUmpireNum],nMin(0),nMax(0),nSum(0);
//------------------打分-----------------------------
for(int i=0;inUmpireNum;++i)
{
cout"请第"i+1"位裁判打分(共"nUmpireNum"位)"endl;
bool bValid=pUmpire[i].SetScore();
while(!bValid)
{//直到输入正确才结束循环。
bValid=pUmpire[i].SetScore();
}
nScore[i]=pUmpire[i].GetScore();//记下每个裁判的打分。
}
//--------------找到最低分,最高分。------------------
nMin=nMax=nScore[0];
for(int j=0;jnUmpireNum;++j)
{
if(nMinnScore[j])
nMin=nScore[j];
if(nMaxnScore[j])
nMax=nScore[j];
nSum+=nScore[j];
}
pSinger[nGetScorePerson].MaxScore=nMax;
pSinger[nGetScorePerson].MinScore=nMin;
//---------------算出平均值得分-----------------------
pSinger[nGetScorePerson].AveScore=(double)(nSum-nMin-nMax)/(nUmpireNum-2);
//-------------将平均值放入容器中,用来排名次---------
vec.push_back(pSinger[nGetScorePerson].AveScore);
//------------------输出格式(四项内容)--------------
cout"歌手姓名---最终得分---最高得分---最低得分---\n ";
coutpSinger[nGetScorePerson].szName_Singer"-----"
pSinger[nGetScorePerson].AveScore"--------------"
pSinger[nGetScorePerson].MaxScore"--------------"
pSinger[nGetScorePerson].MinScore"---\n";
//------------------循环到下一位singer----------------
++nGetScorePerson;
}
sort(vec.begin(),vec.end());//排序,从小到大。
//================================================================
//==============下面就是输出所有歌手排名信息的处理了==============
//================================================================
cout"\n=======排=================行===============榜========\n"endl;
cout"\n----歌手姓名---------------排--名----\n ";
int nGrade(1);//用来排名次的。
for(int k=vec.size()-1;k=0;--k)
{
for(int i=0;inSingerNum;++i)
{
if(pSinger[i].AveScore==vec[k])
{
cout"------"pSinger[i].szName_Singer
"------------------""第"nGrade++"名"endl;
break;
}
}
}
delete [] pUmpire;
return 0;
}
急求评委打分 c++源程序
既然你没有思路,就先给你一点小小的点拨^_^:
1、现在假设评委的数量不超过20个(1~20),这样您可以创建一个20人的数组。
2、要求输入评委的个数(必须大于等于3个,小于20个)。
3、判断评委的个数:
1、如果评委的数目=9,应该在循环读入的时候就使用Max和Min变量分别记录最大和最小的值(假设Max=-1和Min等于999,一个无限大的数),那么每次读入一个数的时候判断如果比Max大,将Max赋值;如果比Min小,给Min赋值。最后统计成绩综合,扣除Max和Min的即可。
2、如果评委数目9,应该先按照1的办法统计出Max和Min,然后再次进行循环,注意,此次循环跳过Max和Min的数(使用continue)。
【聪明的办法】:
先将输入的20个分数或者制定的评委分数存在数组中,进行排序(从大到小),然后根据评委的个数扣除对应的头、末尾和第二个、倒数第二个分数即可。
关于根据打分排序网站源代码和各种排序代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-12网站是怎么建立起来的,网站是怎么建立起来的视频
- 05-12seo网站排名优化,seo网站排名优化教程
- 05-12dw网页设计模板网站,dw网页设计模板网站免费
- 05-12seo网站建设优化,seo网站优化服务
- 05-11武汉seo网站优化,武汉seo引擎优化
- 05-11三明网站seo,三明网站优化
- 05-11廊坊网站,廊坊网站建设模块制作
- 05-11网站优化排名软件推广,网站优化排名优化
- 05-10搭建网站基本步骤,搭建网站第一步
- 05-10建网站的公司排名,国内10大网站建设公司
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接