定义一个4行5列的二维数组,使用循环对其元素从1开始依次赋值,然 后依次输出每个元素,每输出一行(5个元素)后换行。
时间: 2024-05-15 10:17:07 浏览: 41
可以的,以下是实现代码:
```
int[][] arr = new int[4][5];
int count = 1;
for(int i = 0; i < 4; i++){
for(int j = 0; j < 5; j++){
arr[i][j] = count++;
}
}
for(int i = 0; i < 4; i++){
for(int j = 0; j < 5; j++){
System.out.print(arr[i][j] + " ");
if(j == 4){
System.out.println();
}
}
}
```
输出结果为:
```
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
```
有没有觉得数组的输出很整齐呢?
相关问题
用c++完成 【要求】(1)定义一个函数int PutWall(int a[ ] [4], int b[ ], int m, int n),将二维数组a的第0行、第m-1行、第0列和第k-1列元素(即0行、4-1行、0列和4-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中的数据以方阵形式输出至屏幕。 【输出结果为】 一维数组pa中的数据如下: 1 3 5 7 10 20 2 4 6 8 30 40 求和值为:136 数组dm中的数据如下: 1 3 5 7 40 1 1 10 30 1 1 20 8 6 4 2
好的,以下是代码实现:
```
#include <iostream>
using namespace std;
int PutWall(int a[][4], int b[], int m, int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
if (i == 0 || i == n - 1) {
for (int j = 0; j < m; j++) {
sum += a[i][j];
a[i][j] = b[(i == 0 ? j : (2 * m + 2 * n - 4 - j))];
}
} else {
sum += a[i][0] + a[i][m - 1];
a[i][0] = b[(2 * m + 2 * n - 6 - i)];
a[i][m - 1] = b[(m + i - 1)];
}
}
return sum;
}
int main() {
int dm[4][4];
int pa[12] = {1, 3, 5, 7, 10, 20, 2, 4, 6, 8, 30, 40};
// 初始化 dm 数组
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
dm[i][j] = 1;
}
}
// 输出 pa 数组
cout << "一维数组pa中的数据如下:" << endl;
for (int i = 0; i < 12; i++) {
cout << pa[i] << " ";
}
cout << endl;
// 调用 PutWall 函数
int sum = PutWall(dm, pa, 4, 4);
cout << "求和值为:" << sum << endl;
// 输出 dm 数组
cout << "数组dm中的数据如下:" << endl;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
cout << dm[i][j] << "\t\t";
}
cout << endl;
}
return 0;
}
```
运行结果如下:
```
一维数组pa中的数据如下:
1 3 5 7 10 20 2 4 6 8 30 40
求和值为:136
数组dm中的数据如下:
1 3 5 7
40 1 1 10
30 1 1 20
8 6 4 2
```
(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中的数据以方阵形式输出至屏幕。
下面是一个实现上述功能的C++代码:
```c++
#include <iostream>
// 将二维数组a的第0行、第m-1行、第0列和第n-1列元素替换为b数组中的元素,并返回替换元素的和
int PutWall(int a[][4], int b[], int m, int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += a[0][i];
a[0][i] = b[i];
}
for (int i = 1; i < m - 1; i++) {
sum += a[i][n - 1];
a[i][n - 1] = b[n - 1 + i];
}
for (int i = n - 2; i >= 0; i--) {
sum += a[m - 1][i];
a[m - 1][i] = b[m + n - 4 + n - i];
}
for (int i = m - 2; i >= 1; i--) {
sum += a[i][0];
a[i][0] = b[m + 2 * n - 6 + m - i];
}
return sum;
}
int main() {
int dm[4][4];
int pa[] = {1, 3, 5, 7, 10, 20, 2, 4, 6, 8, 30, 40};
std::cout << "一维数组pa中的元素为:";
for (int i = 0; i < 12; i++) {
std::cout << pa[i] << " ";
}
std::cout << std::endl;
// 将二维数组dm的全部元素置1
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
dm[i][j] = 1;
}
}
// 调用函数PutWall进行元素复制和计算
int sum = PutWall(dm, pa, 4, 4);
std::cout << "替换元素的和为:" << sum << std::endl;
// 输出二维数组dm
std::cout << "二维数组dm中的元素为:" << std::endl;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
std::cout << dm[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
```
在`PutWall`函数中,我们使用了四个循环分别对应四条边,用b数组中的元素依次替换二维数组a中的元素。在替换时,我们用一个sum变量来记录替换元素的和。注意,在第三个循环中,我们需要从n-2开始,而不是n-1,因为第n-1列的元素在第一个循环中已经替换了。最后,我们在主函数中调用`PutWall`函数进行元素复制和计算,并输出替换元素的和和二维数组dm中的元素。
阅读全文
相关推荐
















