rsq5奥迪40t多少钱:C++程序设计!

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 01:09:29
1、编写函数实现排序,涉及排序算法对N个学生的成绩进行排序,排序方式根据函数的style参数确定,如style为a升序排序,style为d按降序排序。
2、输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组。

用冒泡排序很容易

void f(int *score,int n,int,char style)
{
int i,j,t,score[100];
if(style='a')
{
for(i=0;i<n;i++)
for(j=0;j<i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
else if(style='d')
{
for(i=0;i<n;i++)
for(j=0;j<i;j++)
if(a[j]<a[j+1]) /*实际上就这里变了而已*/
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
}

void Sort(int, int[], char);
int main(int argc, char* argv[])
{

int score[100];
int n;
char c;
cout <<"请输入学生个数:"<<endl;
cin >>n;
cout <<"输入a(升序) or b(降序)"<<endl;
cin >>c;

cout <<"请输入个学生成绩:"<<endl;
for(int i = 0; i < n; i++)
cin >>score[i];

Sort(n,score,c);
cout <<"输入新的学生成绩:";
cin >>score[n];
Sort(n+1,score,c);

return 0;
}

void Sort(int n, int score[], char style)
{
int temp;
if(style == 'a')
{
for(int i = 0; i < n - 1; i++)
{
for(int j = i + 1; j <= n - 1; j++)
{
if(score[i] > score[j])
{
temp = score[i];
score[i] = score[j];
score[j] = temp;
}
}
}

for (int m = 0; m < n; m++)
cout << score[m] <<" ";

}
else if(style == 'b')
{
for(int i = 0; i < n - 1; i++)
{
for(int j = i + 1; j <= n - 1; j++)
{
if(score[i] < score[j])
{
temp = score[i];
score[i] = score[j];
score[j] = temp;
}
}
}

for (int m = 0; m < n; m++)
cout << score[m] <<" ";
}
}

2题插入用2分法速度快一些,先和中间的比较