您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > C++数组指针题(含答案)
....数组指针01:逆序输出从键盘输入n个整数(n100),存放在一个一维数组中,逆序输出能被3整除的元素,并逆序输出数组下标为3的倍数的元素。输入格式:第一个整数为个数n,后续为n个整数输出格式:第一行能被3整除的元素,第二行为下标为3的倍数的元素,各个数值之间用空格分隔。输入:10279105436820输出:639203102#includeiostreamusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;....cinn;for(i=0;in;i++)cina[i];for(i=n-1;i=0;i--)if(a[i]%3==0)couta[i];coutendl;for(i=n-1;i=0;i--)if(i%3==0)couta[i];coutendl;return0;}数组指针02:逆序存储....从键盘输入n(n100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。输入格式:第一个数为数组中元素个数n,之后为n个元素。输出格式:下标为3的倍数的元素,各个数值之间用空格分隔。输入:10279105436820输出:203102#includeiostreamusingnamespacestd;constintMAX=100;intmain(){inta[MAX],b[MAX],n,i;cinn;for(i=0;in;i++){....cina[i];b[n-1-i]=a[i];}for(i=0;in;i++)if(i%3==0)coutb[i];coutendl;return0;}数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:152791054368200输出:8.09091#includeiostreamusingnamespacestd;....constintMAX=100;intmain(){inta[MAX],n=0;doubles=0;cina[n];while(a[n]){s+=a[n];n++;cina[n];}couts/nendl;return0;}....数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:102791154368200输出:20#includeiostreamusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,n=0,max;cina[n];while(a[n]){n++;cina[n];....}max=a[0];for(i=1;in;i++){if(a[i]max)max=a[i];}coutmaxendl;return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeiostream....usingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,n=0,min=0;cina[n];while(a[n]){n++;cina[n];}for(i=1;in;i++){if(a[i]a[min])min=i;....}coutminendl;return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeiostreamusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,j,n=0,mini,temp;cina[n];....while(a[n]){n++;cina[n];}for(i=0;in-1;i++){mini=i;for(j=i+1;jn;j++)if(a[j]a[mini])mini=j;if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;....}}for(i=0;in;i++){couta[i];}coutendl;return0;}数组指针07:中位数从键盘输入n(n100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;....若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeiostreamusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,j,n=0,mini,temp;cina[n];while(a[n]){n++;cina[n];....}for(i=0;in-1;i++){mini=i;for(j=i+1;jn;j++)if(a[j]a[mini])mini=j;if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)couta[n/2]endl;....elsecout(a[n/2]+a[n/2-1])/2.0endl;coutendl;return0;}....数组指针08:排序从键盘输入n(n100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeiostreamusingnamespacestd;voidsort(ints[],intn){....inti,j,t;for(i=0;in-1;i++)for(j=i+1;jn;j++)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;}}intmain(){ints[100],n=0,i;cins[n];while(s[n])....{n++;cins[n];}sort(s,n);for(i=0;in;i++){couts[i]'';}return0;}数组指针09:斐波那契数列输入一个正整数n(n100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10....输出:258#includeiostreamusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cinn;a[0]=a[1]=1;for(i=2;in;i++)a[i]=a[i-1]+a[i-2];for(i=0;in;i++){if(a[i]%3==2)couta[i];....}coutendl;return0;}数组指针10:素数输入m、n(m,n100),输出[m,n]之间的素数。要求:使用塞选法求素数。用塞选法求100以内的素数过程:在一张纸上写上1到100全部整数,然后逐个判断它们是否是素数,找出一个非素数,就把它挖掉,最后剩下的就是素数。具体做法如下:1先将1挖掉(因为1不是素数)。2用2去除它后面的各个数(2除外),把能被2整除的数挖掉,即把2的倍数挖掉。3用3去除它后面的各数(3除外),把3的倍数挖掉。4分别用4、5…各数作为除数去除这些数以后的各数。这个过程一直进行到在除数后面的数已全被挖掉为止。....最后剩下的都是素数。输入:519输出:5711131719#includeiostreamusingnamespacestd;intmain(){intm,n,a[101],i,j;for(i=1;i101;i++)a[i]=i;cinmn;for(i=2;i101;i++){for(j=i+1;j101;j++)if(a[j]%i==0)....a[j]=0;}for(i=m;i=n;i++){if(a[i]!=0)couta[i];}return0;}数组指针11:数据插入从键盘输入n(n100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0=pos=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100....输出:10279115431006820#includeiostreamusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cina[n];while(a[n]){n++;cina[n];}cinposx;for(i=n-1;i=pos;i--)....{a[i+1]=a[i];}a[pos]=x;n++;for(i=0;in;i++)couta[i];coutendl;}数组指针12:有序插入从键盘输入n个整数(n100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:....1027911543682012输出:20121198765432#includeiostreamusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;in-1;i++)for(j=i+1;jn;j++){if(a[i]a[j]){t=a[i];a[i]=a[j];a[j]=t;....}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i=0&&a[i]x;i--)a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cinn;....for(i=0;in;i++)cina[i];sort(a,n);cinx;insert(a,n,x);for(i=0;in;i++)couta[i];coutendl;return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0=posn),将pos位置的元素从数组中删除,若pos位置不合法,则不删除元素。输出删除后数组中的所有元素。输入:....1027911543682008输出:1027911543820#i
本文标题:C++数组指针题(含答案)
链接地址:https://www.777doc.com/doc-5223384 .html