number1:
输入10个整数,将其中最小的数与第一个数对换,最大的数与最后一个数对换。写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。
#include<iostream>
using namespace std;
int min=0,max=0;
int m,p;

void Input(int arry[],int n)
{
    for(int i=0;i<n;i++)
        cin>>arry[i];

}
/*void Cmp(int arry[],int n)
{
    int *max,*min,*p,*arry_end;
    arry_end=arry+10;
    max=min=arry;
    for(p=arry+1;p<arry_end;p++)
    {
        if(*p>*max) max=p;
        else if(*p<*min) min=p;
    }
        *p=arry[0];
        arry[0]=*min;
        *min=*p;
        *p=arry[n-1];
        arry[n-1]=*max;
        *max=*p;

   
}*/
void Cmp(int arry[],int n)
{
    int min=max=arry[0];
    int m=p=0;
    int t1,t2;
    for(int i=1;i<n;i++)
    {
        if(arry[i]<min)
        {
            min=arry[i];
            m=i;
        }
        else if(arry[i]>max)
        {
            max=arry[i];
            p=i;
    }
    t1=arry[0];
    arry[0]=arry[m];
    arry[m]=t1;
    t2=arry[n-1];
    arry[n-1]=arry[p];
    arry[p]=t2;
    for(int j=0;j<10;j++)
        cout<<arry[j]<<endl;
   
}
void Output(int arry[],int n)
{
//    int *p=arry;
    for(int j=0;j<n;j++)
        cout<<arry[j]<<endl;
//    for(;p<=arry+n-1;p++)
//        cout<<*p<<endl;
}
int main()
{
    int a[10];
    Input(a,10);
    Cmp(a,10);
Output(a,10);
//    for(int j=0;j<10;j++)
//        cout<<a[j]<<endl;

    return 0;
}
第一个Cmp函数可以完成过程(2),而第二个Cmp函数会报错:( 没明白问题出在哪里
E:\program\test\test1.cpp(59) : error C2601: 'Output' : local function definitions are illegal
E:\program\test\test1.cpp(67) : error C2601: 'main' : local function definitions are illegal
E:\program\test\test1.cpp(79) : fatal error C1004: unexpected end of file found
:1)当用数组名作参数时,如果形参数组中各元素的值发生变化,实参数组元素的值随之变化;
    2)调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值;
number2
输入3个字符串,按由小到大的顺序输出。
number3
现在水平对字符的操作很混乱
number4
实现从字符串的第m位开始全部复制。
void copy(char str[],int m)
{
    cout<<str<<endl;
//    int i=0;
    char *s,*s1;
    char string[N];
    s=str;
    s1=string;

    cout<<*s<<endl;
    while(m-1)
    {
        s++;
        m--;
    }
    while(*s!='\0')
    {
        *s1=*s;
        s++;
        s1++;
    }
    *s1='\0';
    cout<<string<<endl;

}
在该函数中,首次进行复制采取的是指针s的内容复制给数组string,但最后显示的结果为所需结果之后还有若干字符。( 没明白问题出在哪里,感觉这个问题与number1中的Cmp类似