C++数组指针题含答案.docx
《C++数组指针题含答案.docx》由会员分享,可在线阅读,更多相关《C++数组指针题含答案.docx(24页珍藏版)》请在冰点文库上搜索。
C++数组指针题含答案
数组指针01:
逆序输出
从键盘输入n个整数(n<100),存放在一个一维数组中,逆序输出能被3整除的元素,并逆序输出数组下标为3的倍数的元素。
输入格式:
第一个整数为个数n,后续为n个整数
输出格式:
第一行能被3整除的元素,第二行为下标为3的倍数的元素,各个数值之间用空格分隔。
输入:
10279105436820
输出:
639
203102
#include
usingnamespacestd;
constintMAX=100;
intmain()
{
inta[MAX],n,i;
cin>>n;
for(i=0;icin>>a[i];for(i=n-1;i>=0;i--)if(a[i]%3==0)cout<cout<for(i=n-1;i>=0;i--)if(i%3==0)cout<cout<return0;}数组指针02:逆序存储从键盘输入n(n<100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。输入格式:第一个数为数组中元素个数n,之后为n个元素。输出格式:下标为3的倍数的元素,各个数值之间用空格分隔。输入:10279105436820输出:203102#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],b[MAX],n,i;cin>>n;for(i=0;i{cin>>a[i];b[n-1-i]=a[i];}for(i=0;iif(i%3==0)cout<cout<return0;}数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:152791054368200输出:8.09091#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0;doubles=0;cin>>a[n];while(a[n]){s+=a[n];n++;cin>>a[n];}cout<return0;}数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:102791154368200输出:20#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cin>>a[i];
for(i=n-1;i>=0;i--)
if(a[i]%3==0)
cout<cout<for(i=n-1;i>=0;i--)if(i%3==0)cout<cout<return0;}数组指针02:逆序存储从键盘输入n(n<100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。输入格式:第一个数为数组中元素个数n,之后为n个元素。输出格式:下标为3的倍数的元素,各个数值之间用空格分隔。输入:10279105436820输出:203102#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],b[MAX],n,i;cin>>n;for(i=0;i{cin>>a[i];b[n-1-i]=a[i];}for(i=0;iif(i%3==0)cout<cout<return0;}数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:152791054368200输出:8.09091#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0;doubles=0;cin>>a[n];while(a[n]){s+=a[n];n++;cin>>a[n];}cout<return0;}数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:102791154368200输出:20#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<for(i=n-1;i>=0;i--)if(i%3==0)cout<cout<return0;}数组指针02:逆序存储从键盘输入n(n<100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。输入格式:第一个数为数组中元素个数n,之后为n个元素。输出格式:下标为3的倍数的元素,各个数值之间用空格分隔。输入:10279105436820输出:203102#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],b[MAX],n,i;cin>>n;for(i=0;i{cin>>a[i];b[n-1-i]=a[i];}for(i=0;iif(i%3==0)cout<cout<return0;}数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:152791054368200输出:8.09091#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0;doubles=0;cin>>a[n];while(a[n]){s+=a[n];n++;cin>>a[n];}cout<return0;}数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:102791154368200输出:20#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
if(i%3==0)
cout<cout<return0;}数组指针02:逆序存储从键盘输入n(n<100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。输入格式:第一个数为数组中元素个数n,之后为n个元素。输出格式:下标为3的倍数的元素,各个数值之间用空格分隔。输入:10279105436820输出:203102#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],b[MAX],n,i;cin>>n;for(i=0;i{cin>>a[i];b[n-1-i]=a[i];}for(i=0;iif(i%3==0)cout<cout<return0;}数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:152791054368200输出:8.09091#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0;doubles=0;cin>>a[n];while(a[n]){s+=a[n];n++;cin>>a[n];}cout<return0;}数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:102791154368200输出:20#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<return0;}数组指针02:逆序存储从键盘输入n(n<100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。输入格式:第一个数为数组中元素个数n,之后为n个元素。输出格式:下标为3的倍数的元素,各个数值之间用空格分隔。输入:10279105436820输出:203102#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],b[MAX],n,i;cin>>n;for(i=0;i{cin>>a[i];b[n-1-i]=a[i];}for(i=0;iif(i%3==0)cout<cout<return0;}数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:152791054368200输出:8.09091#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0;doubles=0;cin>>a[n];while(a[n]){s+=a[n];n++;cin>>a[n];}cout<return0;}数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:102791154368200输出:20#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
return0;
}
数组指针02:
逆序存储
从键盘输入n(n<100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。
第一个数为数组中元素个数n,之后为n个元素。
下标为3的倍数的元素,各个数值之间用空格分隔。
inta[MAX],b[MAX],n,i;
for(i=0;i{cin>>a[i];b[n-1-i]=a[i];}for(i=0;iif(i%3==0)cout<cout<return0;}数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:152791054368200输出:8.09091#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0;doubles=0;cin>>a[n];while(a[n]){s+=a[n];n++;cin>>a[n];}cout<return0;}数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:102791154368200输出:20#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
b[n-1-i]=a[i];
for(i=0;iif(i%3==0)cout<cout<return0;}数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:152791054368200输出:8.09091#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0;doubles=0;cin>>a[n];while(a[n]){s+=a[n];n++;cin>>a[n];}cout<return0;}数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:102791154368200输出:20#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<
cout<return0;}数组指针03:平均值从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。输入:152791054368200输出:8.09091#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0;doubles=0;cin>>a[n];while(a[n]){s+=a[n];n++;cin>>a[n];}cout<return0;}数组指针04:最大值从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。输入:102791154368200输出:20#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针03:
平均值
从键盘输入任意个整数(以0结束,假设不超过100个),存放在一个一维数组中,计算这组数的平均值(实型)。
152791054368200
8.09091
inta[MAX],n=0;
doubles=0;
cin>>a[n];
while(a[n])
s+=a[n];
n++;
数组指针04:
最大值
从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,输出这组数的最大值。
102791154368200
20
inta[MAX],i,n=0,max;
max=a[0];
for(i=1;i{if(a[i]>max)max=a[i];}cout<return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
if(a[i]>max)
max=a[i];
cout<return0;}数组指针05:最小值的位置从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。输入:102791154368200输出:1#includeusingnamespacestd;constintMAX=100;intmain(){inta[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<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针05:
最小值的位置
从键盘输入任意个整数(以0结束,个数不超过100),存放在一个一维数组中,数据从数组的0下标开始存储,输出这组数的最小值所在数组下标。
1
inta[MAX],i,n=0,min=0;
for(i=1;i{if(a[i]min=i;}cout<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
if(a[i]min=i;}cout<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
min=i;
cout<return0;}数组指针06:排序从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。输入:152791154368200输出:23456789111520#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针06:
排序
从键盘输入任意个整数(以0结束,假设个数最大不超过100),将这些数存放在一个一维数组中,将它们从小到大排序后输出。
152791154368200
23456789111520
inta[MAX],i,j,n=0,mini,temp;
for(i=0;i{mini=i;for(j=i+1;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
mini=i;
for(j=i+1;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
if(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
if(mini!
=i)
temp=a[i];
a[i]=a[mini];
a[mini]=temp;
for(i=0;i{cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<}cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<return0;}数组指针07:中位数从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。说明:中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。若数列元素个数为奇数,则中位数为最中间的元素;若数列元素个数为偶数,则中位数为最中间两个元素的平均数。例如:输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5输入:2791154368200输出:6.5#includeusingnamespacestd;constintMAX=100;intmain(){inta[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;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针07:
中位数
从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,输出其中位数。
说明:
中位数(Medians)统计学名词,是指将数据按从小到大顺序排列起来,形成一个数列,居于数列中间位置的那个数据。
若数列元素个数为奇数,则中位数为最中间的元素;
若数列元素个数为偶数,则中位数为最中间两个元素的平均数。
例如:
输入2791154368200则排序后结果为234567891120,则中间两个数的平均值为6.5
2791154368200
6.5
for(i=0;i{mini=i;for(j=i+1;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
for(j=i+1;jif(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
if(a[j]if(mini!=i){temp=a[i];a[i]=a[mini];a[mini]=temp;}}if(n%2==1)cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
if(n%2==1)
cout<elsecout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
else
cout<<(a[n/2]+a[n/2-1])/2.0<cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<return0;}数组指针08:排序从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。其中:排序过程用函数实现。输入:102791154368200输出:35791124681020#includeusingnamespacestd;voidsort(ints[],intn){inti,j,t;for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针08:
从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。
其中:
排序过程用函数实现。
35791124681020
voidsort(ints[],intn)
inti,j,t;
for(i=0;ifor(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
for(j=i+1;jif(((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;cin>>s[n];while(s[n]){n++;cin>>s[n];}sort(s,n);for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
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;
cin>>s[n];
while(s[n])
sort(s,n);
for(i=0;i{cout<}return0;}数组指针09:斐波那契数列输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。斐波那契数列为11235813213455……输入:10输出:258#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n,i;cin>>n;a[0]=a[1]=1;for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针09:
斐波那契数列
输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出斐波那契数列中对3取余为2的数。
斐波那契数列为11235813213455……
10
258
a[0]=a[1]=1;
for(i=2;ia[i]=a[i-1]+a[i-2];for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
a[i]=a[i-1]+a[i-2];
for(i=0;i{if(a[i]%3==2)cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
if(a[i]%3==2)
cout<}cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<return0;}数组指针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#includeusingnamespacestd;intmain(){intm,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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针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;
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<}return0;}数组指针11:数据插入从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。输出插入后数组中的所有元素。输入:1027911543682008100输出:10279115431006820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],i,pos,x,n=0;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos>>x;for(i=n-1;i>=pos;i--){a[i+1]=a[i];}a[pos]=x;n++;for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针11:
数据插入
从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,在输入一个插入位置pos(0<=pos<=n)及被插入的数值x,将x插入到下标为pos的位置。
输出插入后数组中的所有元素。
8100
10279115431006820
inta[MAX],i,pos,x,n=0;
cin>>pos>>x;
for(i=n-1;i>=pos;i--)
a[i+1]=a[i];
a[pos]=x;
for(i=0;icout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<}数组指针12:有序插入从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。其中将整数x插入到数组中使其依然有序用函数完成。输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。输入:1027911543682012输出:20121198765432#includeusingnamespacestd;constintMAX=100;voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针12:
有序插入
从键盘输入n个整数(n<100),存放在一个一维数组中,将它们从大到小排序,再从键盘输入一个整数x,将该数插入到该数组中,使得插入后依然为降序,输出插入后数组中的所有元素。
其中将整数x插入到数组中使其依然有序用函数完成。
第一个为个数n,后续为n个整数,再输入一个整数x。
10279115436820
12
20121198765432
voidsort(inta[],intn)
for(i=0;ifor(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
for(j=i+1;j{if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}}}voidinsert(inta[],int&n,intx){inti;for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
t=a[i];a[i]=a[j];a[j]=t;
voidinsert(inta[],int&n,intx)
inti;
for(i=n-1;i>=0&&a[i]a[i+1]=a[i];a[i+1]=x;n++;}intmain(){inta[MAX],i,x,n;cin>>n;for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
a[i+1]=x;
inta[MAX],i,x,n;
for(i=0;icin>>a[i];sort(a,n);cin>>x;insert(a,n,x);for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
sort(a,n);
cin>>x;
insert(a,n,x);
for(i=0;icout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<return0;}数组指针13:删除从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针13:
删除
从键盘输入任意个整数(以0结束),假设整数个数为n(n<100),则这些数据存放在一个一维数组0~n-1下标中,假设元素所在位置依次为0~n-1,再输入一个删除位置pos(0<=pos输出删除后数组中的所有元素。输入:1027911543682008输出:1027911543820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,pos,i;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>pos;if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
输出删除后数组中的所有元素。
8
1027911543820
inta[MAX],n=0,pos,i;
cin>>pos;
if(pos>=0&&pos{for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
for(i=pos+1;i{a[i-1]=a[i];}n--;}for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
a[i-1]=a[i];
n--;
for(i=0;icout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<return0;}数组指针14:删除元素从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。输出删除后数组中的所有元素。输入:102795115436582005输出:1027911436820#includeusingnamespacestd;constintMAX=100;intmain(){inta[MAX],n=0,i,j,x;cin>>a[n];while(a[n]){n++;cin>>a[n];}cin>>x;j=0;for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针14:
删除元素
从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组从0~n-1下标中,再输入要删除的元素x,将数组中所有的x全部删除。
10279511543658200
5
1027911436820
inta[MAX],n=0,i,j,x;
j=0;
for(i=0;i{if(a[i]!=x){a[j]=a[i];j++;}}n=j;for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
=x)
a[j]=a[i];
j++;
n=j;
for(i=0;icout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<return0;}数组指针15:矩阵输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。输入:123456789101112输出:102642#includeusingnamespacestd;intmain(){inta[3][4],row[3]={0},i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){cin>>a[i][j];row[i]+=a[i][j];}for(i=0;i<3;i++)cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针15:
矩阵
输入3行4列的矩阵存储在一个二维数组中,分别求出各行元素之和,并存入一维数组row中,再输出row的值。
1234
5678
9101112
102642
inta[3][4],row[3]={0},i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
row[i]+=a[i][j];
cout<return0;}数组指针16:对角线元素之和输入一个5*5的矩阵,求出两条对角线元素值之和。输入:11121314401516171841191011124231323334435152535455输出:268#includeusingnamespacestd;intmain(){inta[5][5],s=0,i,j;for(i=0;i<5;i++)for(j=0;j<5;j++){cin>>a[i][j];}for(i=0;i<5;i++)s+=a[i][i]+a[i][4-i];s=s-a[2][2];cout<return0;}数组指针17:鞍点输入一个5*5的矩阵,输出所有的鞍点。所谓鞍点是指一行中的最大值也是该列中的最小值。输入:11121314405556575841191011124231323334435152535455输出:40#includeusingnamespacestd;intmain(){inta[5][5],i,j,k,maxj,mini;for(i=0;i<5;i++)for(j=0;j<5;j++)cin>>a[i][j];for(i=0;i<5;i++){maxj=0;for(j=1;j<5;j++)if(a[i][j]>a[i][maxj])maxj=j;for(k=0;k<5;k++)if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针16:
对角线元素之和
输入一个5*5的矩阵,求出两条对角线元素值之和。
1112131440
1516171841
1910111242
3132333443
5152535455
268
inta[5][5],s=0,i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
s+=a[i][i]+a[i][4-i];
s=s-a[2][2];
数组指针17:
鞍点
输入一个5*5的矩阵,输出所有的鞍点。
所谓鞍点是指一行中的最大值也是该列中的最小值。
5556575841
40
inta[5][5],i,j,k,maxj,mini;
maxj=0;
for(j=1;j<5;j++)
if(a[i][j]>a[i][maxj])
maxj=j;
for(k=0;k<5;k++)
if(a[k][maxj]break;if(k==5)cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
break;
if(k==5)
cout<}return0;}数组指针18:回文字符串从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。其中判断一个字符串是否为回文字符串用函数实现。所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。输入格式:第一个为个数n,后续为n个字符串。输入:3levelabccbaabbd输出:levelabccba#include#includeusingnamespacestd;boolf(chars[]){intlength,i;boolflag=false;length=strlen(s);for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针18:
回文字符串
从键盘输入n(n<100)个字符串(每个字符串长度不超过19),输出这组字符串中的回文字符串。
其中判断一个字符串是否为回文字符串用函数实现。
所谓回文串是指顺读和倒读都一样的一个字符串,如”level”、”abccba”都是回文串。
第一个为个数n,后续为n个字符串。
3levelabccbaabbd
levelabccba
boolf(chars[])
intlength,i;
boolflag=false;
length=strlen(s);
for(i=0;i{if(s[i]!=s[length-i-1])break;}if(i==length/2)flag=true;returnflag;}intmain(){intn,i;charc[20];cin>>n;for(i=1;i<=n;i++){cin>>c;if(f(c))cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
if(s[i]!
=s[length-i-1])
if(i==length/2)
flag=true;
returnflag;
intn,i;
charc[20];
for(i=1;i<=n;i++)
cin>>c;
if(f(c))
cout<}cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cout<return0;}数组指针19:字符串转换在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。其中将字符串转换用一个函数完成。输入:ILoveLiaoNing23输出:ilOVElIAOnING23#includeusingnamespacestd;constintMAX=100;voidMyconvert(charstr[]){inti;for(i=0;str[i];i++)if(str[i]>='a'&&str[i]<='z')str[i]-=32;elseif(str[i]>='A'&&str[i]<='Z')str[i]+=32;}intmain(){chars1[MAX];cin>>s1;Myconvert(s1);cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针19:
字符串转换
在主函数中输入一个字符串(长度不超过99),存储在一个字符数组中,将该字符串中的大写字母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变,输出转换后的字符串。
其中将字符串转换用一个函数完成。
ILoveLiaoNing23
ilOVElIAOnING23
voidMyconvert(charstr[])
for(i=0;str[i];i++)
if(str[i]>='a'&&str[i]<='z')
str[i]-=32;
if(str[i]>='A'&&str[i]<='Z')
str[i]+=32;
chars1[MAX];
cin>>s1;
Myconvert(s1);
cout<return0;}数组指针20:字符串长度输入n个(n<100)字符串,输出所有字符串长度的平均值。其中求一个字符串的长度用自定义函数实现。输入格式,第一个整数n为字符串个数,后续为n个字符串。输入:3worldhelloC++输出:4.33333#includeusingnamespacestd;constintMAX=100;intlength(char*s){inti=0;while(s[i])i++;returni;}intmain(){chars[MAX];intn,i;doublesum=0;cin>>n;for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
数组指针20:
字符串长度
输入n个(n<100)字符串,输出所有字符串长度的平均值。
其中求一个字符串的长度用自定义函数实现。
输入格式,第一个整数n为字符串个数,后续为n个字符串。
3worldhelloC++
4.33333
intlength(char*s)
inti=0;
while(s[i])i++;
returni;
chars[MAX];
doublesum=0;
for(i=0;i{cin>>s;sum+=length(s);}cout<return0;}
cin>>s;
sum+=length(s);
cout<return0;}
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2