number1:
輸入10個(gè)整數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,最大的數(shù)與最后一個(gè)數(shù)對(duì)換。寫(xiě)3個(gè)函數(shù):(1)輸入10個(gè)數(shù);(2)進(jìn)行處理;(3)輸出10個(gè)數(shù)。
#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;
}
第一個(gè)Cmp函數(shù)可以完成過(guò)程(2),而第二個(gè)Cmp函數(shù)會(huì)報(bào)錯(cuò):(沒(méi)明白問(wèn)題出在哪里
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)當(dāng)用數(shù)組名作參數(shù)時(shí),如果形參數(shù)組中各元素的值發(fā)生變化,實(shí)參數(shù)組元素的值隨之變化;
    2)調(diào)用函數(shù)不可能改變實(shí)參指針變量的值,但可以改變實(shí)參指針變量所指變量的值;
number2
輸入3個(gè)字符串,按由小到大的順序輸出。
number3
現(xiàn)在水平對(duì)字符的操作很混亂
number4
實(shí)現(xiàn)從字符串的第m位開(kāi)始全部復(fù)制。
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;

}
在該函數(shù)中,首次進(jìn)行復(fù)制采取的是指針s的內(nèi)容復(fù)制給數(shù)組string,但最后顯示的結(jié)果為所需結(jié)果之后還有若干字符。(沒(méi)明白問(wèn)題出在哪里,感覺(jué)這個(gè)問(wèn)題與number1中的Cmp類(lèi)似