问题:【要求】(1)定义一个函数int PutWall(int a[ ] [4], int b[ ], int m, int n),将二维数组a的第0行、第m-1行、第0列和第n-1列元素(好像一圈围墙)中的每个元素用b数组中的元素依次替换,从a[0][0]开始按顺时针顺序复制。同时对替换的元素值求和,将计算结果返回。函数中要求使用尽可能少的循环语句和赋值语句。
(2)主函数建立整型的二维数组dm[4][4]和一维数组pa。将二维数组dm的全部元素置1。在一维数组pa中存入12个整数:
1,3,5,7,10,20,2,4,6,8, 30,40 并输出至屏幕。
(3)调用函数PutWall ( )进行元素复制和计算,输出返回结果。
(4)返回后将数组dm中的数据以方阵形式输出至屏幕。
我的代码:
#include<iostream>
using namespace std;
void PutWall(int a[] [4], int b[], int m )
{
int i=0,j;
for(j=0;j<4;j++)
{
a[0][j]=b[i];i++;
}
for(j=0;j<m-1;j++)
{a[j][3]=b[i+3];i++;
}
for(j=3;j>=0;j--)
{a[m-1][j]=b[i+m+3];i++;
}
for(j=m-1;j>0;j--)
{
a[0][j]=b[i+m+6];
i++;}
}
int main()
{
int a[4][4]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},b[12]={1,3,5,7,10,20,2,4,6,8,30,40};
int i,j;
PutWall(a,b,4);
for(i=0;i< 4;i++)
{for(j=0;j<4;j++)
cout<< a[i][j]<<'\t';
cout<<endl;}
getchar();
getchar();
}