删除第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]的值。。。。