c# - 3D数组中每边的平均数
问题描述
我是编程新手,我想知道是否有任何简单的方法可以从每一方计算平均总和。
这是我的代码,如果有人知道如何提供帮助,那就太好了。
using System;
namespace _3D_Arrays
{
class Program
{
static void Main(string[] args)
{
int[,,] array3D = new int[1, 4, 3] { { { 4, 5, 6 }, { 4, 4, 5 },
{ 3, 6, 4 }, { 5, 4, 5 } } };
Console.WriteLine();
for (int i = 0; i < 1; i++)
{
for (int j = 0; j<4; j++)
{
for (int k = 0; k < 3; k++)
{
Console.WriteLine("a[{0},{1},{2}] : {3}", i, j, k, array3D[i,j,k]);
}
}
}
}
}
}
Outcome:
a[0,0,0] : 4
a[0,0,1] : 5
a[0,0,2] : 6
avrg : 5 ///(4+5+6 : 3)
a[0,1,0] : 4
a[0,1,1] : 5
a[0,1,2] : 3
avrg : 4 ///(4+5+3 : 3)
...
解决方案
使用列表来跟踪您身边的所有值。在你的 K 循环之后取平均值。
using System.Linq; // on top
using System.Collections.Generic;
...
for (int i = 0; i < 1; i++)
{
for (int j = 0; j < 4; j++)
{
List<int> arr = new List<int>();
for (int k = 0; k < 3; k++)
{
Console.WriteLine("a[{0},{1},{2}] : {3}", i, j, k, array3D[i, j, k]);
arr.Add(array3D[i, j, k]);
}
Console.WriteLine($"Average of side: [{i}, {j}] = {(int)arr.Average()}");
}
}
你得到的输出是:
a[0,0,0] : 4
a[0,0,1] : 5
a[0,0,2] : 6
Average of side: [0, 0] = 5
a[0,1,0] : 4
a[0,1,1] : 4
a[0,1,2] : 5
Average of side: [0, 1] = 4
a[0,2,0] : 3
a[0,2,1] : 6
a[0,2,2] : 4
Average of side: [0, 2] = 4
a[0,3,0] : 5
a[0,3,1] : 4
a[0,3,2] : 5
Average of side: [0, 3] = 4
推荐阅读
- visual-studio-code - VSCode:Markdown 文件使用 3 个空格而不是制表符缩进列表项
- openlayers - Openlayers 6.9.0,无法创建生产包
- javascript - Google Sheet + Script + 将文件夹 ID 从一个脚本返回到另一个脚本
- react-router - 如何通过反应路由器设置状态而不重新渲染所有组件?
- python - 使用 csv 数据标记 matplotlib 中的数据点
- asp.net - 浏览器未将 Cookie 传递给 IFrame
- github - 与创建本地到远程存储库相关的 GitHub 问题
- python - Python 在等式两边应用/迭代操作
- javascript - 每次运行调用它的函数时,webkitSpeechRecognition 总是请求麦克风访问权限
- android-studio - 我正在使用带有 Action Web Search 的 Android Intent 类 - 我希望 Web 搜索响应来自 google 搜索的图像而不是 ALL