求高手帮编个函数调用程序,马上该交作业了,我还没头绪
设有一数列,包含10个数,已按升序排好。现要求编一程序,它能够把从指定位置(p1)开始到指定位置(p2)结束的n个数(p1<p2)按逆序重新排列并输出新的完整数列。进行逆序处理时要求使用函数调用方法。试编程。(例如:原数列为2,4,6,8,10, 12, 14,16,18,20,若要求把从第4个数开始到第8个结束的数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18, 20。)
#include<iostream> using namespace std; void func(int,int,int a[]); void main() { int p1,p2; const int n=10; int a[n]={2,4,6,8,10,12,14,16,18,20}; for(int i=0;i<n;i++) cout<<a[i]<<' '; cout<<"从第几个数字开始?"<<endl; cin>>p1; cout<<"从第几个数字结束?"<<endl; cin>>p2; func(p1,p2,a); for(int i=0;i<n;i++) cout<<a[i]<<' '; } void func(int p1,int p2,int a[]) { int x; int number=(p2-p1)/2; p1--; p2--; for(int i=0;i<10;i++) { if(i==p1) { for(int j=0;j<=number;j++,i++,p2--) { x=a[i]; a[i]=a[p2]; a[p2]=x; } cout<<endl; break; } } }
#include<iostream> using namespace std; void func(int,int,int a[]); void main() { int p1,p2; const int n=10; int a[10]={2,4,6,8,10,12,14,16,18,20}; for(int i=0;i<n;i++) cout<<a[i]<<' '; cout<<"从第几个数字开始?"<<endl; cin>>p1; cout<<"从第几个数字结束?"<<endl; cin>>p2; func(p1,p2,a); } void func(int p1,int p2,int a[]) { int x; int number=p2-p1+1; p1--; p2--; for(int i=0;i<10;i++) { if(i==p1) { for(int j=0;j<number;j++,i++,p2--) { cout<<a[p2]<<' '; } } cout<<a[i]<<' '; } }