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類似