C++一维数组及解答
第1题:编写程序,从任意n个数中找出最大数和最小数,并将它们相互交换后输出。输入分2行:第一行为n的值,第二行为n个数。样例输入:515320样例输出:10325第1题:#include<iostream.h>intmain()inti,n,a100,max,min,maxi,mini,t;cin>>n;for(i=0;i<n;i+)cin>>ai;max=min=a0;maxi=mini=0;for(i=1;i<n;i+)if(ai>max)maxi=i;max=amaxi;if(ai<min)mini=i;min=amini;t=amaxi;amaxi=amini;amini=t;for(i=0;i<n;i+)cout<<ai<<""return0;第2题:编写程序,将任意n个数按从大到小的顺序排序。输入分2行:第一行为n的值,第二行为n个数。样例输入:515320样例输出:53210for(j=0;j<n;j+)for(i=0;i<n-1-j;i+)if(ai>ai+1)t=ai;ai=ai+1;ai+1=t;for(i=n-1;i>=0;i-)cout<<ai<<""return0;#include<iostream.h>intmain()inta100,n,i,j,t;cin>>n;for(i=0;i<n;i+)cin>>ai;第3题:编写程序,利用折半查找法从一个开序排列的数列中查找某数是否存在,如果存在则输出该数的下标,否则输出NO输入分3行:第一行为n的值,代表数列中数的个数,第二行为n个数(升序排列),第三行为要查找的数。样例输入:5012353样例输出:3样例输入:5012354样例输出:NO第3题:#include<iostream.h>intmain()intl=0,h,m,k,a100,i,n;cin>>n;h=n-1;for(i=0;i<n;i+)cin>>ai;cin>>k;while(l<=h)m=(l+h)/2;if(am=k)cout<<m;break;if(am>k)h=m-1;if(am<k)l=m+1;if(l>h)cout<<"NO"return0;第4题:编写程序,将一个数组中的数循环左移。输入分2行:第一行为n的值,第二行为n个数。样例输入:515320样例输出:53201第4题:#include<iostream.h>intmain()inta100,i,n,t;cin>>n;for(i=0;i<n;i+)cin>>ai;t=a0;for(i=0;i<n-1;i+)ai=ai+1;an-1=t;for(i=0;i<n;i+)cout<<ai<<""return0;第5题:编写程序,从任意n个数中找出素数并输出。输入分2行:第一行为n的值,第二行为n个整数。样例输入:513520样例输出:352第5题:#include<iostream.h>intmain()inta100,i,n,k,sum;cin>>n;for(i=0;i<n;i+)cin>>ai;for(i=0;i<n;i+)for(sum=0,k=1;k<=ai;k+)if(ai%k=0)sum=sum+1;if(sum=2)cout<<ai<<""return0;第6题:输入n个数,找出其中的偶数并计算平均值后输出。输入分2行:第一行为n的值,第二行为n个数;输出分2行:第一行为其中的偶数,第二行为所有偶数的平均值。样例输入:515320样例输出:201第6题:#include<iostream.h>intmain()inta100,n,i;doublesum,k,x;cin>>n;for(i=0;i<n;i+)cin>>ai;for(k=0,sum=0,i=0;i<n;i+)if(ai%2=0)cout<<ai<<""sum=sum+ai;k=k+1;cout<<"n"x=sum/k*1.0;cout<<x;return0;第7题:编写程序求Fibonacci数歹1J前n项和,n由键盘输入。样例输入:5样例输出:12#include<iostream.h>intmain()inti,sum,a100=1,1,n;cin>>n;sum=0;for(i=2;i<n;i+)ai=ai-1+ai-2;for(i=0;i<n;i+)sum=sum+ai;cout<<sum;return0;第8题:编写程序,利用顺序查找法从一个数列中查找某数是否存在,如果存在则输出该数的下标,否则输出NQ输入分3行:第一行为n的值代表数列中数的个数,第二行为n个数,第三行为要查找的数。样例输入:5623853样例输出:2样例输入:5623854样例输出:NO#include<iostream.h>intmain()inta100,i,n,m;cin>>n;for(i=0;i<n;i+)cin>>ai;cin>>m;for(i=0;i<n;i+)if(ai=m)cout<<i;break;if(ai!=m)cout<<"NO"return0;第9题:输入整数n,将其各位数字取出后,重新组合成一个新的最大的整数。样例输入:35241样例输出:54321#include<iostream.h>intmain()inta100,n,i,w,t,j,m;cin>>n;w=0;t=0;for(i=0;n>0;i+,w=0)w=n%10;ai=w;n=n/10;t+;for(j=0;j<t;j+)for(i=0;i<t-1-j;i+)if(ai>ai+1)m=ai;ai=ai+1;ai+1=m;for(i=t-1;i>=0;i-)cout<<ai;return0;第10题:编写程序,将一个数组中的数逆序重新存放后输出。输入分2行:第一行为n的值,第二行为n个数。样例输入:515320样例输出:02351程序清单:第10题:#include<iostream.h>intmain()inta100,i,t,n;cin>>n;for(i=0;i<n;i+)cin>>ai;for(i=0;i<n/2;i+)t=ai;ai=an-1-i;an-1-i=t;for(i=0;i<n;i+)cout<<ai<<""return0;