8 条题解
-
2
这道题我为大家整理了两种做法
AC代码1(推荐)
#include <iostream> using namespace std; int main() { int n, i; cin >> n; int a[n], b[n - 1]; for (i = 0; i < n; i++) { cin >> a[i]; } int x; cin >> x; int m = x - 1; for (i = 0; i < m; i++) { b[i] = a[i]; } for (i = m; i < n - 1; i++) { b[i] = a[i + 1]; } for (i = 0; i < n - 1; i++) { cout << b[i] << " "; } return 0; }
AC代码2(懒人必看)
#include <iostream> using namespace std; int main() { int a[100], n, x; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; cin >> x; for (int i = 0; i < n; i++) if (i + 1 != x) cout << a[i] << " "; return 0; }
-
1
这道题可以使用
vector
向量实现快速删除,使用erase
函数,vector
操作函数如下:-
erase
删除元素 -
insert
插入元素 -
pop_back
删除最后一个元素 -
push_back
在最后加入AC代码如下:
#include <bits/stdc++.h> using namespace std; int main() { vector<int> v; int n,x; cin >> n; for (int i = 1;i <= n;i++) { int t; cin >> t; v.push_back(t); } cin >> x; v.erase(v.begin() + x - 1); for (int i = 0;i < v.size();i++) { cout << v[i] << " "; } return 0; }
-
-
0
首先要先定义n和x这两个变量,分别表示一共有几个整数和要删除的数的位置。然后再定义一个 数组a[11]。接下来要输入n和n个数输入,再输入x。然后进入一个循环里判断数组的每一项的下 标是不是等于x。如果是,那就写一个continue不输出这个值。如果不是,那就输出这一项的值。
#include <iostream> using namespace std; int main() { int n,a[11],x; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } cin>>x; for(int i=1;i<=n;i++) { if(i==x) { continue; } cout<<a[i]<<" "; } return 0; }
-
0
沿用161这道题输出的思路,
分开输出即可,并不用实现真正的删除。
首先输出0到m-2这些下标的元素,因为m是位置,那么m这个位置对应的下标是m-1,它前面的就是m-2。
然后在输出从下标m开始到n-1的即可。
#include<iostream> using namespace std; int main() { int n,m,a[10]; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; } cin>>m; for(int i=0;i<m-1;i++) { cout<<a[i]<<" "; } for(int i=m;i<n;i++) { cout<<a[i]<<" "; } return 0; }
- 1
信息
- ID
- 162
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 386
- 已通过
- 148
- 上传者