C++数组指针题Word文档下载推荐.docx
《C++数组指针题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++数组指针题Word文档下载推荐.docx(40页珍藏版)》请在冰豆网上搜索。
i--)
if(a[i]%3==0)
cout<
<
a[i]<
"
"
;
endl;
if(i%3==0)
return0;
}
数组指针02:
逆序储存
从键盘输入n(n<
100)个整数,寄存在一个一维数组a中,将它们逆序存
放在另一个整型数组b中,并按b数组中下标从小到大的次序输出下标为3的倍
数的数组元素。
第一个数为数组中元素个数n,以后为n个元素。
下标为3的倍数的元素,各个数值之间用空格分开。
inta[MAX],b[MAX],n,i;
b[n-1-i]=a[i];
b[i]<
数组指针03:
均匀值
从键盘输入随意个整数(以0结束,假定不超出100个),寄存在一个一维数组中,计算这组数的均匀值(实型)。
inta[MAX],n=0;
doubles=0;
a[n];
while(a[n])
s+=a[n];
n++;
s/n<
数组指针04:
最大值
从键盘输入随意个整数(以0结束,个数不超出100),寄存在一个一维数
组中,输出这组数的最大值。
20
#include<
inta[MAX],i,n=0,max;
max=a[0];
for(i=1;
if(a[i]>
max)
max=a[i];
max<
数组指针05:
最小值的地点
从键盘输入随意个整数(以0结束,个数不超出100),寄存在一个一维数组中,数据从数组的0下标开始储存,输出这组数的最小值所在数组下标。
1
inta[MAX],i,n=0,min=0;
if(a[i]<
a[min])
min=i;
min<
数组指针06:
排序
从键盘输入随意个整数(以0结束,假定个数最大不超出100),将这些数寄存在一个一维数组中,将它们从小到大排序后输出。
23456789111520
inta[MAX],i,j,n=0,mini,temp;
n-1;
mini=i;
for(j=i+1;
j<
j++)
if(a[j]<
a[mini])mini=j;
if(mini!
=i)
temp=a[i];
a[i]=a[mini];
a[mini]=temp;
数组指针07:
中位数
从键盘输入n(n<
100)个整数(以0结束),寄存在一个一维数组中,输出此中位数。
说明:
中位数(Medians)统计学名词,是指将数据按从小到大次序摆列起来,形成一个数列,居于数列中间地点的那个数据。
若数列元素个数为奇数,则中位数为最中间的元素;
若数列元素个数为偶数,则中位数为最中间两个元素的均匀数。
比如:
输入
2791154368200则排序后结果为234567891120,则中间两
个数的均匀值为
2791154368200
if(n%2==1)
a[n/2]<
else
(a[n/2]+a[n/2-1])/<
数组指针08:
100)个整数(以0结束),寄存在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的次序排序,并输出排序后的结果。
此中:
排序过程用函数实现。
35791124681020
voidsort(ints[],intn)
inti,j,t;
for(j=i+1;
if(((s[i]%2)<
(s[j]%2))||(((s[i]%2)==(s[j]%2))&
&
(s[i]>
s[j])))
t=s[i];
s[i]=s[j];
s[j]=t;
ints[100],n=0,i;
s[n];
while(s[n])
sort(s,n);
s[i]<
'
'
数组指针09:
斐波那契数列
输入一个正整数n(n<
100),将斐波那契数列的前n项保留到一维数组中,并输出斐波那契数列中对3取余为2的数。
斐波那契数列为
10
258
a[0]=a[1]=1;
for(i=2;
a[i]=a[i-1]+a[i-2];
if(a[i]%3==2)
数组指针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各数作为除数去除这些数此后的各数。
这个过程向来进
行到在除数后边的数已全被挖掉为止。
最后剩下的都是素数。
519
5711131719
intm,n,a[101],i,j;
101;
a[i]=i;
m>
if(a[j]%i==0)
a[j]=0;
for(i=m;
=n;
if(a[i]!
=0)
数组指针11:
数据插入
100)个整数(以0结束),寄存在一个一维数组中,在
输入一个插入地点pos(0<
=pos<
=n)及被插入的数值x,将x插入到下标为pos
的地点。
输出插入后数组中的所有元素。
8100
inta[MAX],i,pos,x,n=0;
pos>
x;
=pos;
a[i+1]=a[i];
a[pos]=x;
数组指针12:
有序插入
100),寄存在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依旧为降序,输出插入后数组中的所有元素。
此中将整数x插入到数组中使其依旧有序用函数达成。
第一个为个数n,后续为n个整数,再输入一个整数x。
12
voidsort(inta[],intn)
a[j])
t=a[i];
a[i]=a[j];
a[j]=t;
voidinsert(inta[],int&
n,intx)
inti;
=0&
a[i+1]=x;
inta[MAX],i,x,n;
sort(a,n);
insert(a,n,x);
数组指针13:
删除
从键盘输入随意个整数(以0结束),假定整数个数为n(n<
100),则这些数据寄存在一个一维数组0~n-1下标中,假定元素所在地点挨次为0~n-1,再输
入一个删除地点pos(0<
n),将pos地点的元素从数组中删除,若pos位
置不合法,则不删除元素。
输出删除后数组中的所有元素。
8
inta[MAX],n=0,pos,i;
pos;
if(pos>
pos<
n)
for(i=pos+1;
a[i-1]=a[i];
n--;
数组指针14:
删除元素
100)个整数(以0结束),寄存在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x所有删除。
5
inta[MAX],n=0,i,j,x;
j=0;
=x)
a[j]=a[i];
j++;
n=j;
数组指针15:
矩阵
输入3行4列的矩阵储存在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。
1234
5678
9101112
102642
inta[3][4],row[3]={0},i,j;
3;
for(j=0;
4;
a[i][j];
row[i]+=a[i][j];
row[i]<
数组指针16:
对角线元素之和
输入一个5*5的矩阵,求出两条对角线元素值之和。
1112131440
1516171841
1910111242
3132333443
5152535455
268
inta[5][5],s=0,i,j;
5;
s+=a[i][i]+a[i][4-i];
s=s-a[2][2];
s<
数组指针17:
鞍点
输入一个5*5的矩阵,输出所有的鞍点。
所谓鞍点是指一行中的最大值也是该列中的最小值。
5556575841
40
inta[5][5],i,j,k,maxj,mini;
maxj=0;
for(j=1;
if(a[i][j]>
a[i][maxj])
maxj=j;
for(k=0;
k<
k++)
if(a[k][maxj]<
break;
if(k==5)
a[i][maxj]<
数组指针18:
回文字符串
100)个字符串(每个字符串长度不超出19),输出这组字符串中的回文字符串。
此中判断一个字符串能否为回文字符串用函数实现。
所谓回文串是指顺读和倒读都同样的一个字符串,如”level”、”abccba”都是回文串。
第一个为个数n,后续为n个字符串。
3levelabccbaabbd
levelabccba
cstring>
boolf(chars[])
intlength,i;
boolflag=false;
length=strlen(s);
for(i=0;
length/2;
if(s[i]!
=s[length-i-1])
if(i==length/2)
flag=true;
returnflag;
intn,i;
charc[20];
c;
if(f(c))
c<
数组指针19:
字符串变换
在主函数中输入一个字符串(长度不超出99),储存在一个字符数组中,将该字符串中的大写字母变为相应的小写字母,小写字母变为相应的大写字母,其余字符不变,输出变换后的字符串。
此中将字符串变换用一个函数达成。
ILoveLiaoNing23
ilOVElIAOnING23
iostrea