题目描述
有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。
输入描述:
第一行输入一个整数(0≤N≤50)。
第二行输入N个整数,输入用空格分隔的N个整数。
第三行输入想要进行删除的一个整数。
输出描述:
输出为一行,删除指定数字之后的序列。
解题思路
两个数组,第一个数组a,保存原始数据,b数组存入删除后的数据,将a中的元素和指定删除数字对比,不相等就存进b数组。
代码
#include<iostream> using namespace std; int main() { int n; cin>>n;//输入第一个参数,也就是要输入的数的个数 int k=0; int a[n+1];//防止索引越界,数组定义大一些 int b[n+1]; for(int i=0;i<n;++i) cin>>a[i];//依次输入数组a的n个数 int d; cin>>d;//输入要删除的数字 for(int j=0;j<n;++j) if(a[j]!=d)//如果不是要删除的数字 b[k++]=a[j];//存进数组b for(int m=0;m<k;++m) cout<<b[m]<<" "; return 0; }