结构体数组中的删除
请教一下~帮我看看这个程序为何运行之后只能将k位置后一位前移,余下的却没有办法前移学生类型包含学号姓名成绩三个数据项 调用函数删除K位置上学生的信息
#include<iostream>
#include<string>
using namespace std;
struct Student
{
string name;
int num;
float score;
};
void main()
{
void delete1(Student a[],int k);
int n,i,k;
cin>>n>>k;
Student *a;
a=new Student[n];
for(i=0;i<n;i++)
{ cin>>a[i].name>>a[i].num>>a[i].score;}
delete1(a,k);
delete []a;
}
void delete1(Student a[],int k)
{
int n,i;
for(i=0;i<k;i++)
cout<<a[i].name<<a[i].num<<a[i].score<<endl;
if(i==k)
{ a[i]=a[i+1];
cout<<a[i].name<<a[i].num<<a[i].score<<endl;
}
for(i=k+1;i<=n;i++)
{
a[i]=a[i+1];
cout<<a[i].name<<a[i].num<<a[i].score<<endl;
}
}