C++数组指针题(含答案)
别妄想泡我
897次浏览
2021年01月26日 19:40
最佳经验
本文由作者推荐
-
数组指针
01
:逆序输出
从键盘输入
n
个整数(
n<100
),存放在一个一维数组中,逆序输出能被
3
整除的元素,并逆序 输出数组下标为
3
的倍数的元素。
输入格式:第一个整数为个数
n
,后续为
n
个整数
输出格式:
第一行能被
3
整除的元素,
第二行为下标为
3
的倍数的元素,
各
个数值之间用空格分隔。
输入:
10
2
7
9
10
5
4
3
6
8
20
输出:
6
3
9
20
3
10
2
#include
using
namespace
std;
const
int
MAX=100;
int
main()
{
int
a[MAX],n,i;
..
..
cin>>n;
for(i=0;i
for(i=n-1;i>=0;i--)
if(a[i]%3==0)
cout<
cout<
if(i%3==0)
cout<
cout<
0;
}
数组指针
02
:逆序存储
..
..
从键盘输入
n
(
n<100
) 个整数,存放在一个一维数组
a
中,将它们逆序存
放在另一个整型数组
b中,并按
b
数组中下标从小到大的顺序输出下标为
3
的
倍数的数 组元素。
输入格式:第一个数为数组中元素个数
n
,之后为
n个元素。
输出格式:下标为
3
的倍数的元素,各个数值之间用空格分隔。
输入:
10
2
7
9
10
5
4
3
6
8
20
输出:
20
3
10
2
#include
using
namespace
std;
const
int
MAX=100;
int
main()
{
int
a[MAX],b[MAX],n,i;
cin>>n;
for(i=0;i
..
..
cin>>a[i];
b[n-1-i]=a[i];
}
for(i=0;i
cout<
cout<
0;
}
数组指针
03
:平均值
从键盘输入任 意个整数(以
0
结束,假设不超过
100
个),存放在一个一
维数组 中,计算这组数的平均值(实型)。
输入:
15
2
7
9
10
5
4
3
6
8
20
0
输出:
8.09091
#include
using
namespace
std;
..
..
const
int
MAX=100;
int
main()
{
int
a[MAX],n=0;
double
s=0;
cin>>a[n];
while(a[n])
{
s+=a[n];
n++;
cin>>a[n];
}
cout<
0;
}
..
..
数组指针
04
:最大值
从键盘输入任意个整数(以
0结束,个数不超过
100
),存放在一个一维数
组中,输出这组数的最大值。
输入:
10
2
7
9
11
5
4
3
6
8
20
0
输出:
20
#include
using
namespace
std;
const
int
MAX=100;
int
main()
{
int
a[MAX],i,n=0,max;
cin>>a[n];
while(a[n])
{
n++;
cin>>a[n];
..
..
}
max=a[0];
for(i=1;i
if(a[i]>max)
max=a[i];
}
cout<
0;
}
数组指针
05
:最小值的位置
从键盘输入任意个整数(以
0
结束,个数不超过
100
),存放在一个一维数
组中,数据从数组的
0
下标开始存储,输出这组数的最小值所在数组下标。
输入:
10
2
7
9
11
5
4
3
6
8
20
0
输出:
1
#include
..
..
using
namespace
std;
const
int
MAX=100;
int
main()
{
int
a[MAX],i,n=0,min=0;
cin>>a[n];
while(a[n])
{
n++;
cin>>a[n];
}
for(i=1;i
if(a[i]min=i;
..
..
}
cout<
0;
}
数组指针
06
:排序
从键盘输入任意 个整数(以
0
结束,假设个数最大不超过
100
),将这些数
存放在 一个一维数组中,将它们从小到大排序后输出。
输入:
15
2
7
9
11
5
4
3
6
8
20
0
输出:
2
3
4
5
6
7
8
9
11
15
20
#include
using
namespace
std;
const
int
MAX=100;
int
main()
{
int
a[MAX],i,j,n=0,mini,temp;
cin>>a[n];
..
..
while(a[n])
{
n++;
cin>>a[n];
}
for(i=0;i
mini=i;
for
(j=i+1;j
(a[j]mini=j;
if
(mini!=i)
{
temp=a[i];
a[i]=a[mini];
a[mini]=temp;
..
..
}
}
for(i=0;i
cout<
}
cout<
0;
}
数组指针
07
:中位数
从键盘输入
n(n<100)
个整数(以
0
结束),存放在一个一维 数组中,输出
其中位数。
说明:中位数(
Medians
)统计学 名词,是指将数据按从小到大顺序排列
起来,形成一个数列,居于数列中间位置的那个数据。若数列元素 个数为奇数,
则中位数为最中间的元素;
..
..
若数列元素个数为偶数,
则中位数为最中间两个元素的平均数。
例如:
输入
2
7
9
11
5
4
3
6
8
20
0
则排序后结果为
2
3
4
5
6
7
8
9
11
20
,
则中间
两个数的平均值为
6.5
输入:
2
7
9
11
5
4
3
6
8
20
0
输出:
6.5
#include
using
namespace
std;
const
int
MAX=100;
int
main()
{
int
a[MAX],i,j,n=0,mini,temp;
cin>>a[n];
while(a[n])
{
n++;
cin>>a[n];
..
..
}
for(i=0;i
mini=i;
for
(j=i+1;j
(a[j]mini=j;
if
(mini!=i)
{
temp=a[i];
a[i]=a[mini];
a[mini]=temp;
}
}
if(n%2==1)
cout<..
..
else
cout<<(a[n/2]+a[n/2-1])/2.0<
0;
}
..
..
数组指针
08
:排序
从键盘输入
n(n<100)
个整数(以
0
结束),存放在一个一维数组中,将它
们按奇数在前、
偶数在 后,
同为奇数或偶数的按从小到大的顺序排序,
并输出排
序后的结果。
其中:排序过程用函数实现。
输入:
10
2
7
9
11
5
4
3
6
8
20
0
输出:
3
5
7
9
11
2
4
6
8
10
20
#include
using
namespace
std;
void
sort(int
s[],int
n)
{
..
..
int
i,j,t;
for(i=0;i
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
int
main()
{
int
s[100],n=0,i;
cin>>s[n];
while(s[n])
..
..
{
n++;
cin>>s[n];
}
sort(s,n);
for(i=0;i
cout<
}
return
0;
}
数组指针
09
:斐波那契数列
输入一个正整数
n
(
n<100
)
,
将斐波那契数列的前
n
项保存到一维数组 中,
并输出斐波那契数列中对
3
取余为
2
的数。
斐波那契数列为
1
1
2
3
5
8
13
21
34
55……
输入:
10
..
..
输出:
2
5
8
#include
using
namespace
std;
const
int
MAX=100;
int
main()
{
int
a[MAX],n,i;
cin>>n;
a[0]=a[1]=1;
for(i=2;i
for(i=0;i
if(a[i]%3==2)
cout<
..
..
}
cout<
0;
}
数组指针
10
:素数
输入
m
、
n
(
m
,
n<100
),输出
[m,n]
之间的素数。要求 :使用塞选法求
素数。
用塞选法求
100
以内的素数过程:在一张 纸上写上
1
到
100
全部整数,然
后逐个判断它们是否是素数,
找出一个非素数,就把它挖掉,最后剩下的就是素数。
具体做法如下:
<1>
先将
1
挖掉
(
因为
1
不是素数
)
。
<2>
用
2去除它后面的各个数(
2
除外),把能被
2
整除的数挖掉,即把
2
的倍数挖掉。
<3>
用
3
去除它后面的各数(
3
除外),把
3
的倍数挖掉。
<4>
分别用
4
、5…各数作为除数去除这些数以后的各数。这个过程一直进
行到在除数后面的数已全被挖掉 为止。
..
..
最后剩下的都是素数。
输入:
5
19
输出:
5
7
11
13
17
19
#include
using
namespace
std;
int
main()
{
int
m,n,a[101],i,j;
for(i=1;i<101;i++)
a[i]=i;
cin>>m>>n;
for(i=2;i<101;i++)
{
for(j=i+1;j<101;j++)
if(a[j]%i==0)
..
..
a[j]=0;
}
for(i=m;i<=n;i++)
{
if(a[i]!=0)
cout<
}
return
0;
}
数组指针
11
:数据插入
从键盘输入
n
(
n<100
)个整数(以
0
结束),存放在一个一维数组中,在
输入一个插 入位置
pos
(
0<=pos<=n
)及被插入的数值
x
, 将
x
插入到下标为
p
os
的位置。输出插入后数组中的所有元素。< br>
输入:
10
2
7
9
11
5
4
3
6
8
20
0
8
100
..
..