求高手帮编个函数调用程序,马上该交作业了,我还没头绪
设有一数列,包含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。)
2011-08-20 17:31
2011-08-20 17:36
2011-08-20 23:30
2011-08-20 23:52
2011-08-21 09:41
程序代码:
int change(int p1,int p2,int arry[])
{
if(p1>p2)
{
return -1;
}
else
{
int temp;
temp=arry[p1];
arry[p1]=arry[p2];
arry[p2]=temp;
return change(p1+1,p2-1,arry);
}
}

2011-08-21 10:27
2011-08-21 16:10
程序代码:#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;
}
}
}
2011-08-21 18:47
程序代码:#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]<<' ';
}
}
2011-08-21 18:59