编程C++:编写一个程序完成以下功能:

1、输入10个学生的单科成绩(0~100之间)。2、从高分到低分排序。3、输入一个成绩x(0~100),在已经排序的学生成绩中进行查找。若存在,在主函数中输出其所在位置,否则,将x插入适当位置,新形成的数列依然按从高到低排序。要求:函数input实现数据输入,函数sort实现排序,函数search实现查找,函数insert实现查找,函数display实现数据输出。

#include<iostream.h>
void input(int core[]);
void sort(int core[]);
int search(int core[],int i,int x);
void insert(int core[],int x);
void display(int core[],int index,int num);
int main()
{
int i,k,m,stucore[10];
for(i=0;i<10;i++)
stucore[i]=-1;
input(stucore);
sort(stucore);
display(stucore,0,10);
m=0;
while(1){
cout<<"输入一个成绩进行查询,如果输入-1则退出。"<<endl;
cin>>k;
if(k==-1)break;
stucore[m++]=k;
if(m>9)break;
}
return 0;
}
void input(int core[])
{
int i,k;
cout<<"成绩输入:"<<endl;
for(i=0;i<10;i++)
{
cout<<endl<<"输入第"<<i+1<<"个学生的成绩(0-100):"<<endl;
cin>>k;
if(k==-1)break;
else core[i]=k;
}
}
void sort(int core[])
{
int i,j,temp;
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
{
if(core[i]<core[j])
{
temp=core[i];
core[i]=core[j];
core[j]=temp;
}
}
}
int setrch(int core[],int x)
{
int i;
for(i=0;i<10;i++)
{
if(core[i]==0)continue;
if(core[i]==x)return i;
}
return -1;
}
void insert(int core[],int x)
{
int i,k,m;
k=0;
for(i=0;i<10;i++)
if(core[i]==-1)
{
k++;
m=i;
}
if(k)
{
core[m]=x;
sort(core);
}
}
void display(int core[],int i,int count)
{
int j;
cout<<"数据输出:"<<endl;
for(j=0;j<count;j++)
{
if(i>9)continue;
cout<<i+1<<". "<<core[i]<<endl;
i++;
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答