1.数组的逆序输出:
题目:
输入:第一行一个整数m(3<=m<=100);第二行输入m个整数(空格隔开);
输出:逆序输出m个整数(空格隔开)。
方法一:不是真正的逆序,只是倒着输出它。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m,a[10];
cin>>m;
for(int i=0;i<m;i++)
{
cin>>a[i];
}
for(int i=m-1;i>=0;i--)
{
cout<<a[i]<<" ";
}
return 0;
}
方法二:真正的逆序,把数组里的所有元素进行交换,输出交换后的数组排序。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m,a[10];
cin>>m;
for(int i=0;i<m;i++)
{
cin>>a[i];
}
for(int i=0;i<m/2;i++)
{
int tmp=a[i];
a[i]=a[m-1-i];
a[m-i-1]=tmp;
}
for(int i=0;i<m;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
2.数组的元素删除:
题目:
输入:第一行一个整数n(n<=10);第二行输入n个整数;第三行输入整数x,为要删除的位置;
输出:输出更新后的数组。
方法一:不是真正的删除,而是读入的时候跳过它。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a[10];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int p;
cin>>p;
p=p-1;
for(int i=0;i<n;i++)
{
if(i!=p)
{
cout<<a[i]<<" ";
}
}
return 0;
}
方法二:真正的删除,后面的值依次覆盖前面的值。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a[100];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int p;
cin>>p;
p=p-1;
for(int i=p;i<n;i++)
{
a[i]=a[i+1];
}
n--;
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
3.数组的元素插入:
题目:在一个数组的x的位置插入一个新的数y。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a[100]={0};
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int p,pv;
cin>>p>>pv;
p=p-1;
for(int i=n-1;i>=p;i--)
{
a[i+1]=a[i];
}
n++;
a[p]=pv;
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}