大神们快来,帮帮孩子??!!

删除第k个元素后的整数序列。

样例输入 

5 3
1 2 3 4 5

样例输出 

1 2 4 5

 

 

我自己写了一下,思路是把删除要删除的那个元素交换到最后一位,然后不输出最后一位

但是我不知道我的代码错在了哪里,请求指正!!!!

 

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,j,k,i,m;
	int p[51];
	while(cin>>n>>k){
		for(i=0;i<n;i++){
			cin>>p[i];
		}
		for(j=1;j<n-k;j++){
			swap(p[n-3],p[n-2]);
			n=n+1;
		}
		int *o=&p[i];
		for(m=1;m<n;m++){
			cout<<*o<<endl;
		}
		}
	return 0;
} 

 

14-16行写的什么?在14行前面输出下i的值看看是什么?你的i是前面第7行遍历之后的i,你输入了n个数字,那么你的i=n请问你此时的*o=&p[n]是想表达什么?而且你下面的第16行一直输出的是p[n]的值。。。。