=====项目一=====
实训内容:
1、定义一个数组a[11],用以存放学生的成绩。
2、从键盘输入10个学生成绩
3、采用冒泡法,将学生成绩按照从高到低进行排序
4、再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组
5、将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列
个人代码如下:
#include<iostream>
using namespace std;
//冒泡实现排序
void _Bubble(int a[], int n)
{
int i, k;
int flag = n;
while (flag > 0)
{
k = flag;
flag = 0;
for (i = 1; i < k; i++)
{
if (a[i - 1]<a[i])
{
swap(a[i - 1], a[i]);
flag = i;
}
}
}
}
//插入新的一个学生的序号
void myselcet(int t[],int num,int a[])
{
int weizhi = 0;
int i = 0;
int j = 0;
int *b = new int [11];
for (; i < 10; )
{
if (num>=t[i])
{
b[i] = num;
weizhi = i;
break;
}
b[j++] = t[i++];
}
for (i = weizhi ; i < 10; i++)
b[i+1] = t[i];
for (int i = 0; i < 11; i++)
a[i] = b[i];
}
//翻转
void revese(int a[], int n)
{
int i = 0;
int j = 0;
int k = n / 2;
i = k - 1;
if (n % 2 == 0)
{
j = k;
}else
{
j =k+1;
}
for (int ii = 0; ii < k; ii++)
swap(a[i--], a[j++]);
}
//主函数
int main()
{
int a[11];//保存学生成绩
int tempa[10];
int test[10] = {10,9,8,7,6,5,4,3,2,1};
cout <<"请输入10个学生的成绩:" <<endl;
for (int i = 0; i < 10; i++)
cin >> tempa[i];
for (int i = 0; i < 10; i++)
cout << tempa[i]<<" ";
cout << endl;
_Bubble(tempa, 10);
for (int i = 0; i < 10; i++)
cout << tempa[i] << " ";
cout << "请在输入一个学生的成绩:" << endl;
int newstudent;
cin >> newstudent;
myselcet(tempa, newstudent, a);
cout << "排序好之后的学生成绩:" << endl;
for (int i = 0; i < 11; i++)
cout << a[i] << " ";
cout << endl;
revese(a, 11);
cout << "翻转后的成绩:" << endl;
for (int i = 0; i < 11; i++)
cout << a[i] << " ";
cout << endl;
//cout << (11 / 2);
return 0;
}