第六周作业

来源:互联网 发布:mac 小红点 编辑:程序博客网 时间:2024/04/30 08:48

第四章 数组学习要求和实验

n      学习要求

理解数组的基本概念,了解数组存储方法。

掌握一维和二维数组定义格式和数组元素使用。了解多维数组的定义和引用形式。

掌握字答数组的定义、字符数组与字符串的关系。

掌握常用字符串处理函数的使用。

进一步掌握循环程序设计技巧和方法。

进一步积累程序调试经验。

n      实验作业

1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;

2.编程实现课本每一个编程习题。

3. 编程定义一个4X5矩阵和5X3矩阵,并计算它们的积。

4.编程输出1到n的平方的自然数构成的“魔方阵”,魔方阵是指它每一行和每一列及对角线之和均相等的方阵。

5.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。

 

01.// leason4.cpp : Defines the entry point for the console application.   02.//课本习题:冒泡法排序   03.  04.//#include "stdafx.h"   05.#include<iostream>   06.using namespace std;  07.#include<iomanip>   08.int num[5];  09.int main()  10.{  11.    int a,b,i;  12.    cout<<"please input 5 numbers:"<<endl;  13.    for(a=0;a<5;a++)  14.    cin>>num[a];  15.    cout<<"这五个数是:";  16.    for(a=0;a<5;a++)  17.        cout<<setw(5)<<num[a];  18.    cout<<endl;  19.    for(a=0;a<5;a++)  20.        for(i=4;i>0;i--)  21.    if(num[i]>num[i-1])  22.    {   b=num[i];  23.    num[i]=num[i-1];  24.    num[i-1]=b;  25.    }  26.    cout<<"排序后:";  27.    for(a=0;a<5;a++)  28.        cout<<setw(4)<<num[a];  29.    cout<<endl;  30.    return 0;  31.}  


01.// 第四章1.cpp : 定义控制台应用程序的入口点。   02.//选择排序   03.  04.#include "stdafx.h"   05.#include<iostream>   06.using namespace std;  07.//int num[10];   08.int _tmain(int argc, _TCHAR* argv[])  09.{  10.    int num[10];  11.    int a,b;  12.    int min,n;  13.    cout<<"请输入十个数"<<endl;  14.    for(a=0;a<10;a++)  15.        cin>>num[a];  16.    for(a=0;a<9;a++)  17.    {  18.        min=a;  19.    for(b=a+1;b<10;b++)  20.        {if(num[b]<num[min])  21.        min=b;}  22.    if(min!=a)  23.    {n=num[a];num[a]=num[min];num[min]=n;}  24.    cout<<"第"<<a+1<<"次排序结果:"<<endl;  25.    for(b=0;b<10;b++)  26.        cout<<num[b]<<'\t';  27.    cout<<endl;  28.    };  29.    cout<<"最后排列结果:"<<endl;  30.    for(a=0;a<10;a++)  31.        cout<<num[a]<<'\t';  32.    cout<<endl;  33.    return 0;  34.}  


 

01.// 第四章1.cpp : 定义控制台应用程序的入口点。   02.//插入法排序   03.  04.#include "stdafx.h"   05.#include<iostream>   06.#include<iomanip>   07.using namespace std;  08.int num[10]={45,62,18,73,64,58,39,57,85,28};  09.int _tmain(int argc, _TCHAR* argv[])  10.{  11.    int a,b;  12.    int min,n;  13.    //cout<<"请输入十个数"<<endl;   14.    //for(a=0;a<10;a++)              //每次调试都要输数,真的很麻烦   15.        //cin>>num[a];                //所以就在开头定义了   16.    cout<<"初始数据:"<<endl;  17.    for(a=0;a<10;a++)  18.        cout<<setw(5)<<num[a];  19.    cout<<endl;  20.    for(a=1;a<10;a++)  21.    {  22.        min=num[a];  23.    b=a-1;  24.    while(b>=0&&num[b]>min)  25.    {  26.        num[b+1]=num[b];  27.    b--;  28.    }  29.    num[b+1]=min;  30.    cout<<"第"<<a<<"次排序结果:"<<endl;  31.    for(b=0;b<10;b++)  32.        cout<<setw(5)<<num[b];  33.    cout<<endl;  34.    };  35.    cout<<"最后排列结果:"<<endl;  36.    for(a=0;a<10;a++)  37.        cout<<setw(5)<<num[a];  38.    cout<<endl;  39.    return 0;  40.}  


 

01.// 第四章1.cpp : 定义控制台应用程序的入口点。   02.//习题4-3   03.  04.#include "stdafx.h"   05.#include<iostream>   06.#include<iomanip>   07.using namespace std;  08.int num[20]={1,1};  09.int main()  10.{  11.    int a,b=0;  12.    for(a=2;a<20;a++)  13.        num[a]=num[a-2]+num[a-1];  14.    cout<<"初始数据:"<<endl;  15.    for(a=1;a<=20;a++)  16.    {  17.        cout<<setw(8)<<num[a-1];  18.        if(a%5==0)  19.        cout<<endl;  20.    }  21.    for(a=0;a<20;a++)  22.    if(num[a]>99&&num[a]<1000)  23.        b++;  24.    cout<<"数列中共有"<<b<<"个三位数"<<endl;  25.    cout<<"第十六项数是:"<<num[15]<<endl;  26.    return 0;  27.}  

01.// 第四章1.cpp : 定义控制台应用程序的入口点。   02.//习题4-2   03.  04.#include "stdafx.h"   05.#include<iostream>   06.#include<iomanip>   07.using namespace std;  08.int num[3][4];  09.int main()  10.{  11.    int a,b;  12.    int min,max;  13.    cout<<"请输入12个数"<<endl;  14.    for(a=0;a<3;a++)  15.        for(b=0;b<4;b++)  16.        cin>>num[a][b];     17.    cout<<"初始数据:"<<endl;  18.    for(a=0;a<3;a++)  19.    {  20.        for(b=0;b<4;b++)  21.        cout<<"num["<<a<<"]["<<b<<"]="<<num[a][b]<<'\t';  22.        cout<<endl;  23.    }  24.    cout<<endl;  25.    max=num[0][0];  26.    min=num[0][0];  27.    for(a=0;a<3;a++)  28.        for(b=0;b<4;b++)  29.        {  30.        if(max<num[a][b])  31.            max=num[a][b];;  32.        if(min>num[a][b])  33.            min=num[a][b];  34.        }  35.        for(a=0;a<3;a++)  36.        for(b=0;b<4;b++)  37.        {  38.        if(max==num[a][b])  39.            cout<<"最大项max=num["<<a<<"]["  40.            <<b<<"]="<<num[a][b]<<endl;;  41.        if(min==num[a][b])  42.            cout<<"最小项min=num["<<a<<"]["  43.            <<b<<"]="<<num[a][b]<<endl;  44.        }  45.    return 0;  46.}  

01.// 第四章1.cpp : 定义控制台应用程序的入口点。   02.//习题4-3   03.  04.#include "stdafx.h"   05.#include<iostream>   06.#include<iomanip>   07.using namespace std;  08.int num[20]={1,1};  09.int main()  10.{  11.    int a,b=0;  12.    for(a=2;a<20;a++)  13.        num[a]=num[a-2]+num[a-1];  14.    cout<<"初始数据:"<<endl;  15.    for(a=1;a<=20;a++)  16.    {  17.        cout<<setw(8)<<num[a-1];  18.        if(a%5==0)  19.        cout<<endl;  20.    }  21.    for(a=0;a<20;a++)  22.    if(num[a]>99&&num[a]<1000)  23.        b++;  24.    cout<<"数列中共有"<<b<<"个三位数"<<endl;  25.    cout<<"第十六项数是:"<<num[15]<<endl;  26.    return 0;  27.}  

01.// disizhanglianxi2.cpp : 定义控制台应用程序的入口点。   02.//   03.  04.#include "stdafx.h"   05.#include<iostream>   06.#include<iomanip>   07.using namespace std;  08.float A[4][5]={32,65,-23,56,14,15,9,25,41,35,67,42,65,52,35,71,19,29,34,38,};  09.float B[5][3]={41,52,63,74,15,24,31,-41,65,-18,27,23,69,48,56,};  10.float C[4][3];  11.int main()  12.{  13.    int a,b,c,d=0,e,f,g;  14.for(a=0;a<4;a++)  15.{  16.    g=0;  17.    for(b=0;b<3;b++)  18.    {  19.        c=5;  20.        e=0;  21.        f=0;  22.        while(c)  23.        {  24.            C[a][b]+=A[d][e]*B[f][g];  25.            e++;  26.            f++;  27.            c--;  28.        }  29.        g++;  30.    }  31.        d++;  32.    }  33.cout<<"A="<<endl;  34.    for(a=0;a<4;a++)  35.    {  36.        for(b=0;b<5;b++)  37.            cout<<setw(8)<<setprecision(5)<<A[a][b];  38.        cout<<endl;  39.    }  40.cout<<"B="<<endl;  41.for(e=0;e<5;e++)  42.    {  43.        for(f=0;f<3;f++)  44.            cout<<setw(8)<<setprecision(5)<<B[e][f];  45.        cout<<endl;  46.    }  47.cout<<"C=AxB="<<endl;  48.for(c=0;c<4;c++)  49.    {  50.        for(d=0;d<3;d++)  51.            cout<<setw(8)<<setprecision(5)<<C[c][d];  52.        cout<<endl;  53.    }  54.  55.    return 0;  56.}  

01.// disizhanglianxi2.cpp : 定义控制台应用程序的入口点。   02.//   03.  04.#include "stdafx.h"   05.#include<iostream>   06.#include<iomanip>   07.using namespace std;  08.  09.//float A[4][5]={32,65,-23,56,14,15,9,25,41,35,67,42,65,52,35,71,19,29,34,38,};   10.//float B[5][3]={41,52,63,74,15,24,31,-41,65,-18,27,23,69,48,56,};   11.//float C[4][3];   12.int main()  13.{  14.    int a,b,c,d=0,e,f,g,i,k,m,n;  15.    float A[20][20],B[20][20],C[20][20];    //由于定义数组时系统会开辟出一块空间,   16.                                        //在写程序时应考虑实际情况,够用就好,杜绝浪费   17.    do  18.    {cout<<"请确定第一个矩阵的行数i(i<=20)"<<endl;  19.    cin>>i;}  20.    while(i>20);  21.    do  22.    {  23.    cout<<"请确定第一个矩阵的列数k(k<=20)"<<endl;  24.    cin>>k;}  25.    while(k>20);  26.    do  27.    {cout<<"请确定第二个矩阵的行数m(应与第一矩阵列数相等)"<<endl;  28.    cin>>m;}  29.    while(m!=k);  30.    do  31.    {cout<<"请确定第二个矩阵的列数n(n<=20)"<<endl;  32.    cin>>n;}  33.    while(n>20);  34.    cout<<"输入第一个矩阵的元素"<<endl;  35.    for(a=0;a<i;a++)  36.        for(b=0;b<k;b++)  37.            cin>>A[a][b];  38.    cout<<"输入第二个矩阵的元素"<<endl;  39.    for(a=0;a<m;a++)  40.        for(b=0;b<n;b++)  41.            cin>>B[a][b];  42.for(a=0;a<i;a++) //第一个矩阵的行数为新矩阵行数   43.{  44.    g=0;  45.    for(b=0;b<n;b++) //第二个矩阵的列数为新矩阵列数   46.    {  47.        c=k;    //这是由第一矩阵列数决定的   48.        e=0;  49.        f=0;  50.        while(c)  51.        {  52.            C[a][b]+=A[d][e]*B[f][g];  53.            e++;  54.            f++;  55.            c--;  56.        }  57.        g++;  58.    }  59.        d++;  60.    }  61.cout<<"A="<<endl;  62.    for(a=0;a<i;a++)  63.    {  64.        for(b=0;b<k;b++)  65.            cout<<setw(8)<<setprecision(5)<<A[a][b];  66.        cout<<endl;  67.    }  68.cout<<"B="<<endl;  69.for(e=0;e<m;e++)  70.    {  71.        for(f=0;f<n;f++)  72.            cout<<setw(8)<<setprecision(5)<<B[e][f];  73.        cout<<endl;  74.    }  75.cout<<"C=AxB="<<endl;  76.for(a=0;a<i;a++)  77.    {  78.        for(b=0;b<n;b++)  79.            cout<<setw(8)<<setprecision(5)<<C[a][b];  80.        cout<<endl;  81.    }  82.  83.    return 0;  84.}  

很多都不会的说哭
0 0
原创粉丝点击