钱能C++教材习题答案六

   /2005-05-08

闂備浇娉曢崰鎰板几婵犳艾绠柣鎴eГ閺呮悂鏌¢崒妯衡偓鏍偓姘秺閺屻劑鎮㈤崨濠勪紕闂佸綊顥撻崗姗€寮幘璇叉闁靛牆妫楅鍫曟⒑鐠恒劌鏋戦柡瀣煼楠炲繘鎮滈懞銉︽闂佽法鍣﹂幏锟�2闂備浇娉曢崰鎰板几婵犳艾绠柣鎴eГ閺呮悂鎮跺☉娆樻當閻忓繐鎳橀獮蹇涙倻閼恒儲娅㈤梺鍛婄懐閸嬪棝銆傞鈧獮蹇涙倻閼恒儲娅㈤梺瑙勪航閸庤鲸鎯斿⿰鍫濈闁绘垼濮ら弲鎼佹煛閸屾ê鈧牜鈧艾缍婇弻銊╂偄閼姐倗鐛╅梺鎸庣箓缁绘垹鈧熬鎷�
闂備浇娉曢崰鏇€€冮妶澶嬬劸闁靛ǹ鍎卞▓鈺呮煙閻戠瓔妫戞い蹇嬪灲濡嫮鈧綆鍠楅弲鎼佹煛閸屾ê鈧牜鈧艾缍婇弻銊╂偄濞茬粯鍋ョ紒鐐緲椤︽壆鈧俺顫夌粙澶愬焵椤掑嫭鐓ラ柣鏃囶嚙閳诲繘鏌涢弽銈呭⒉閻庢艾缍婇弻銊╂偄瀹勬澘缂撻梺鎸庣箓缁绘垹鈧艾缍婇弻銊╂偄閸涘﹦浼勯梺褰掝棑閸忔﹢寮幘璇叉闁靛牆妫楅鍫曟⒑鐠恒劌鏋戦柡瀣煼楠炲繐鐣¢幍顔兼殹闂備浇娉曢崰鎰板几婵犳艾绠柣鎴eГ閺呮悂姊婚崘顓犲牚闁告挸顕崰濠冨緞鐎n亶浼撻梻浣芥硶閸犳洟銆佸⿰鍫燁棃闁冲搫鍊搁鍫曟⒑鐠恒劌鏋戦柡瀣煼楠炲繘鏌ㄧ€n亝鎲㈠┑鈽嗗灲缁绘繈寮幘璇叉闁靛牆妫楅鍫曟⒑鐠恒劌鏋戦柡瀣煼楠炲繘鎮滈懞銉︽闂佸搫鍊堕崐鏍偓姘辨嚀閳绘棃寮拌箛鎿冩綂闂備浇娉曢崰鎰板几婵犳艾绠柣鎴eГ閺呮悂鏌¢崒妯衡偓鏍偓姘秺閹洦绗熼埀顒勫极閹捐埖顫曠紒灞傗偓鍞€婵犮垻鎳撶紞濠囧极閹炬剚娴栭柡鍌氱仢濞堚晠鏌熷畡鏉挎Щ妞ゆ帞鍠愮粙濠囨偐缂佹ɑ娅㈤梺鍝勫€堕崐鏍偓姘秺閺屻劑鎮㈤崨濠勪紕闂佸綊顥撻崗姗€寮幘璇叉闁靛牆妫楅鍫曟⒑鐠恒劌鏋戦柡瀣煼楠炲繘鎮滈懞銉︽闂傚倸鍟崇紙浼村礈鐎电ǹ鏋堝璺侯儏椤忓爼鏌ら崘鎻掓殻闁轰焦鎹囧顒勫Χ閸℃浼撻梻浣芥硶閸o箓骞忛敓锟�20闂備浇娉曢崰鎾诲几婵傚憡鏅€光偓閸曨剚娅㈤梺鍝勵槺婢ф寮告繝姘闁绘垼濮ら弲鎼佹煕閹捐纭舵い鎺撶叀楠炲繐鐣¢幍顔芥緰闂備浇娉曢崰鎾绘偂椤愩倕鏋堝璺侯儏椤忓爼鏌熺粙鎸庡枠闁轰焦鎹囧顒勫Χ閸℃浼撻梻浣芥硶閸犳劙寮抽埀顒勬煛婢跺濮屾い鏇熺矒楠炲繘鎮块锝呮畱闂備浇娉曢崰鎰板几婵犳艾绠柣鎴eГ閺呮悂鏌¢崒妯衡偓鏍偓姘秺閺屻劑鎮㈤崨濠勪紕闂佸綊顥撻崗姗€寮幘璇叉闁靛牆妫楅璺衡槈閺冨倸鈻堥柡浣规崌瀵剟濡堕崱妤婁紦闂備浇娉曢崰鎰板几婵犳艾绠柣鎴eГ閺呮悂鏌¢崒妯衡偓鏍偓姘秺閺屻劑鎮㈤崨濠勪紕闂佸綊顥撻崗姗€寮幘璇叉闁靛牆妫楅鍫曟偡閺囨氨绐旈柡浣规尰缁楃喖濡烽妷銉ф闂佸綊顥撻崗姗€寮幘璇叉闁靛牆妫楅鍫曟⒑鐠恒劌鏋戦柡瀣煼楠炲繘鏁撻敓锟�
//********************
//*        7.6       *
//********************
# include <iostream.h>

int m[5][4]={{65,68,54,69},{62,82,83,81},{91,97,82,74},{75,32,91,72},{83,71,82,91}};

void top(int a[][4],int i,int j);
void fail(int b[][4],int i,int j);
void ave(int c[][4],int i,int j);

void main()
{
        top(m,5,4);
        fail(m,5,4);
        ave(m,5,4);
}

void top(int a[][4],int i,int j)
{
        int k,l;
        int x,y,z;
        for(k=0;k<j;k++)
        {
                z=a[0][k];x=0;y=k;
                for(l=0;l<i;l++)
                {
                        if(a[l][k]>z)
                        {x=l;y=k;z=a[l][k];}
                }
                cout<<"对第"<<k<<"门课程,成绩最高的是第"<<x<<"同学,成绩为:"<<z<<endl;
        }
}       
void fail(int b[][4],int i,int j)
{
        cout<<endl;
        int k,l;

        for(k=0;k<i;k++)
        {
                int x=0;
                for(l=0;l<j;l++)
                {
                        if(b[k][l]<60)
                                x=1;
                }
                if (x==1)
                {
                        cout<<"第"<<k<<"个同学有不及格课程,其各科成绩为:";
                        for(int y=0;y<j;y++)
                        {
                                cout<<b[k][y]<<",";
                        }

                }
                cout<<endl;
        }
}
void ave(int c[][4],int i,int j)
{
        cout<<endl;
        int k,l;

        for(k=0;k<j;k++)
        {
                int z=0;
                for(l=0;l<i;l++)
                {
                        z=z+c[l][k];
                }
                cout<<"对第"<<k<<"门课程,平均成绩为:"<<z/i<<endl;
        }
}


//********************
//*        7.7       *
//*                  *
//*   9   5   11     *
//*   5   7    8     *
//*   9   0    3     *
//*                  *
//********************
# include <iostream.h>
# include <iomanip.h>

int a[3][3]={5,7,8,2,-2,4,1,1,1};

int b[3][3]={4,-2,3,3,9,4,8,-1,2};

void main()
{
        int c[3][3];
        for(int i=0;i<3;i++)
        {
                for(int j=0;j<3;j++)
                {
                        c[j]=a[j]+b[j];
                }
        }
        for(int x=0;x<3;x++)
        {
                for(int y=0;y<3;y++)
                {
                        cout<<setw(4)<<c[x][y];
                }
                cout<<endl;
        }
}

第8章

//********************
//*        8.1       *
//*         1        *
//*     0X0012FF5C   *
//*         91       *
//********************
# include <iostream.h>
int * findmax(int * array,int size,int * index);
void main()
{
        int a[10]={33,91,54,67,82,37,85,63,19,68};
        int * maxaddr;
        int idx;
        maxaddr=findmax(a,sizeof(a)/sizeof(*a),&idx);

        cout<<"the index of maximum element is"<<" "<<idx<<endl
                <<"the address of it is"<<" "<<maxaddr<<endl
                <<"the value of it is"<<" "<<a[idx]<<endl;
}

int * findmax(int * array,int size,int * index)
{
        int * temp=array;
        int j;
        for(j=0;j<size;j++)
        {
                if(*(array+j)>*temp)
                {
                        temp=array+j;
                        * index=j;
                }
        }
        return temp;
}


//********************
//*        8.2********
//********************
# include <iostream.h>

int search(int num=10,int interval=3);
void main()
{
        int num1;
        int interval1;

        while(1)
        {
                cout<<"please input the numbers of boys:";
                cin>>num1;
                cout<<"please input the interval:";
                cin>>interval1;
                if((num1<1) || (interval1<1)||(interval1>num1))
                {
                        int i;
                        cout<<endl<<"please choice:"<<endl;
                        cout<<"other number---retry"<<" "<<"0---exit:"<<endl;
                        cin>>i;
                        if(i=0)
                                exit(1);
                }
                else
                        break;
        }

        int n=search(num1,interval1);
        cout<<"/nNo."<<n<<"Boy's won./n";

}

int search(int num,int interval)
{

        int * a=new int[num];


        for(int j=0;j<num;j++)
                a[j]=j+1;


        for(int k=0;k<num;k++)
                cout<<*(a+k)<<",";
        cout<<endl;

        int l=1;
        int m=-1;

        while(1)
        {
                for(int n=0;n<interval
                {
                        m=(m+1)%num;                       
                        if(*(a+m)!=0)
                                n++;
                }


                if(l==num)
                {
                        return m;
                        break;
                }

                cout<<*(a+m)<<endl;
                *(a+m)=0;

                l++;
        }
        delete []a;
}


//********************
//*     8.3.(1)      *
//********************
# include <iostream.h>
# include <stdlib.h>

int compare(const void * a,const void * b);
int list1[10]={12,32,42,51,8,16,51,21,19,9};
int * list[10]={& list1[0],& list1[1],&list1[2],&list1[3],&list1[4],&list1[5],&list1[6],&list1[7],&list1[8],&list1[9]};

void main()
{
        qsort((void *) list,10,sizeof(list[0]),compare);
        for(int i=0;i<10;i++)
        {
                cout<<*list<<endl;
        }
}
int compare(const void * a,const void * b)
{
        int temp1=**(int**)a;
        int temp2=**(int**)b;
        temp1=temp1/10+(temp1-((temp1/10)*10));
        temp2=temp2/10+(temp2-((temp2/10)*10));
        if(temp1<temp2)
                return -1;
        else
        {
                if(temp1==temp2)
                        return 0;
                else
                        return 1;
        }
}

婵炴垶鎸撮崑鎾绘⒑鐠恒劌鏋戦柡瀣煼楠炲繘鎮滈懞銉︽闂佽桨鐒﹂悷銊╊敋濠婂牆绠柣鎴eГ閺呮悂鎮峰▎鎰刊闁革綆鍨堕獮蹇涙煥鐎n儷鐔兼⒑鐠恒劌鏋戦柡瀣煼楠炲繘鎮滈懞銉︽闂佸搫鍊堕崐鏍偓姘秺閹煎湱鎷犲ù瀣€奸梻浣芥硶閸犳劙寮告繝姘闁绘垼濮ら弲鎼佹⒒閸愵厾鍫柛鎾愁嚟閸犲﹥寰勭€n亶浼撻梻浣芥硶閸犳劙寮告繝姘闁绘垼濮ら弲鎼佹煛閸屾ê鈧牜鈧艾婀遍弫顔肩暆閸曨剚娅㈤梺璺ㄥ櫐閹凤拷
2闂備浇娉曢崰鎰板几婵犳艾绠柣鎴eГ閺呮悂鎮跺☉娆樻當閻忓繐鎳橀獮蹇涙倻閼恒儲娅㈤梺鍛婄懐閸嬪棝銆傞鈧獮蹇涙倻閼恒儲娅㈤梺鍝勫€堕崐鏍偓姘秺閺屻劑鎮㈤崜浣虹厯闂佹寧绋戦悧鎾诲极閹捐妫橀柕鍫濇椤忓爼鏌e▎鎰仧婵狀澀绶氶獮蹇涙倻閼恒儲娅㈤梺缁樼懕缁辨洟銆傞鈧獮蹇涙倻閼恒儲娅㈡俊銈嗐仦鐠€锕傚磻閹捐绠柣鎴eГ閺呮悂鏌¢崒妯衡偓鏍偓姘秺閺屻劑鎮㈤崨濠勪紕闂佺懓鍢查崲鑼箔閸ヮ剚鐓ラ柣鏂挎啞閻忣噣鏌熸搴″幋闁轰焦鎹囧顒勫Χ閸℃浼撻梻浣芥硶閸犳劙寮告繝姘闁绘垼濮ら弲鎼佹煛閸屾ê鈧牜鈧艾缍婇弻銊╂偄閸涘﹦浼勯梺鍦厴椤ユ挾鈧鍙冮、妤佺節閸愵煈浼撻梻浣芥硶閸犳劙寮告繝姘闁绘垼濮ら弲鎼佹煥閻曞倹瀚�547闂備浇娉曢崰鎰板几婵犳艾绠柣鎴eГ閻濇粓鏌″蹇斿4闂備浇娉曢崰鎰板几婵犳艾绠柣鎴eГ閺呮悂鏌¢崒妯衡偓鏍偓姘秺閺屻劑鎮㈤崨濠勪紕闂佸綊顥撻崗姗€寮幘璇叉闁靛牆妫楅鍫曟⒑閸喚鐒搁柡浣规崌瀵剟濡堕崱妤婁紦闂備浇娉曢崰鏍熸笟鈧俊鎼佸箳閺冩垶娈伴梺褰掝棑閸忔﹢寮幘瀵哥懝闁靛鍎遍惃锟犳煙妞嬪骸鍘撮柡浣规崌瀵剟濡堕崱妤婁紦闂備浇娉曢崰鎰板几婵犳艾绠梺鍨儑椤€儵姊虹捄銊ユ瀾闁哄顭烽獮蹇涙倻閼恒儲娅㈤梺鍝勫€堕崐鏍偓姘秺瀹曪繝鏌嗗鍡樻闂佸搫鍊堕崐鏍偓姘秺閺屻劑鎮㈤崨濠勪紕闂佸綊顥撻崗姗€寮幘璇茬闁靛鍠楃欢娑㈡煙妞嬪骸鍘撮柡浣规崌瀵剟濡堕崱妤婁紦闂備浇娉曢崰鎾绘偘閵堝牜妾梺褰掝棑閸忔﹢寮幘璇叉闁靛牆妫楅鍫曟⒑鐠恒劌娅愰柟鍑ゆ嫹40闂備浇娉曢崰鎰板几婵犳艾绠柧姘€婚悷鈺佲槈閹惧瓨鐨戞い銏$缁旂喖顢曢敂鑺ユ闂佸搫鍊堕崐鏍偓姘秺閺屻劑鎮㈤崨濠勪紕闂佸綊顥撻崗姗€寮幘璇叉闁靛牆妫楅鍓佺棯椤撶喐绀€闁挎稑顑夐弻銊╂偄閸涘﹦浼勯梺褰掝棑鑹払A闂備浇娉曢崰鎰板几婵犳艾绠柣鎴eГ閺呮悂鏌¢崒妯衡偓鏍偓姘秺閺屻劑鎮㈤崨濠勪紕闂佸綊顥撻崗姗€寮幘璇叉闁靛牆妫楅鍫曟⒑鐠恒劌鏋戦柡瀣煼楠炲繑顦版惔顔芥櫔婵犮垼顕栭崑濠囧极閹捐妫橀柕鍫濇椤忓爼姊虹捄銊ユ瀾闁哄顭烽獮蹇涙倻閼恒儲娅㈤梺鐓庣摠娣囨椽骞撻鍫濈闁绘垼濮ら弲鎼佹煛閸屾ê鈧牜鈧艾婀卞☉鐢稿即閻戝洨绀堥梻浣芥硶閸犳劙寮告繝姘闁绘垼濮ら弲鎼佹煛閸屾ê鈧牜鈧氨鎳撻悾鈩冩媴闂堟稈鍋撹楠炲繘鎮滈懞銉︽闂佸憡鎸搁悘婵嬨€呴悜钘夌闁斥晛鍟璺侯潡椤愩埄鍎旈柡浣规崌瀵剟濡堕崱妤婁紦闂備浇娉曢崳锕傚箯閿燂拷28闂備浇娉曢崰鎰板几婵犳艾绠€瑰嫮澧楅崐閬嶆⒑鐠恒劌鏋戦柡瀣煼楠炲繐鐣¢柇锕€濡抽梻浣芥硶閸犳劙寮告繝姘闁绘垼濮ら弲鎼佹煛閸屾ê鈧牜鈧艾婀卞☉鐢稿即濮樿京鎳囨繛鎴炴尰瀹€鎼佸极閹捐妫橀柕鍫濇椤忥拷1130闂備浇娉曢崰鏇€€佸⿰鍫濈闁告侗鍠栭鍫曟⒑鐠恒劌鏋戦柡瀣煼楠炲繘鏌ㄧ€n亝鎲㈤梺纭呮缂嶅﹪寮幘缁樻櫢闁跨噦鎷�

相关话题/

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19