小弟我会一维数组插入排序,小弟我依理写的结构数组排序如何就错了
我会一维数组插入排序,我依理写的结构数组排序怎么就错了?

------解决方案--------------------
我把升序情況改了,結果如圖,降序情況你可以自己改改,權當練習.
结构数组,插入排序
------解决方案--------------------
我把升序情況改了,結果如圖,降序情況你可以自己改改,權當練習.
#include <iostream>
using namespace std;
//定义全局变量等
struct s
{
char ID[15];
double S1,S2,S3,Avg;
char name[15];
};
int num;
s *p_s=NULL;
//数据输入及平均分填充
void data()
{ cout<<"请输入总人数"<<endl;
cin>>num;
p_s = new s[num];
for(int i=0;i!=num;i++)
{
cout<<"依次输入ID 分数1 分数2 分数3 姓名 中间以回车或空格区分"<<endl;
cin>>p_s[i].ID>>p_s[i].S1>>p_s[i].S2>>p_s[i].S3>>p_s[i].name;
}
//数据处理计算出平均值填充
for(int i=0;i!=num;i++)
p_s[i].Avg=(p_s[i].S1+p_s[i].S2+p_s[i].S3)/3;
}
//排序
void select_sort (char ad, s* p_s)
{
switch(ad)
{
case 'a':
for(int j=0;j!=num;j++)
{
//double key=p_s[j].Avg;
s key;
key = p_s[j];
int i=j-1;
while( i>-1 && p_s[i].Avg>key.Avg)
{
p_s[i+1]=p_s[i];
i--;
}
//p_s[i+1]=p_s[j];
p_s[i+1] = key;