我是一个新手程序员,所以有一些问题。程序只显示3个积极的元素在一个一维数组,虽然可能有更多的二维数组。
这是我代码
using System;
namespace task_2
{
class arrays
{
public int[,] A = new int[3, 3];
public int[] B = new int[9];
public void two_dimensional_array()
{
Random rand = new Random();
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
A[i, j] = rand.Next(-100, 100);
}
}
Console.WriteLine("Two-dimensional array: ");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write("{0}\t", A[i, j]);
}
Console.WriteLine();
}
}
public void one_dimensional_array()
{
Console.WriteLine("\nA one-dimensional array with only positive elements: ");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (A[i, j] > 0)
B[i] = A[i, j];
}
}
for (int i = 0; i < 9; i++)
{
Console.WriteLine(B[i]);
}
}
}
class Program
{
static void Main()
{
Console.OutputEncoding = System.Text.Encoding.Default;
arrays a;
a = new arrays();
a.two_dimensional_array();
a.one_dimensional_array();
}
}
}
我在下面附上了一张结果的照片,其中只显示了三个积极的因素:enter image description here
2条答案
按热度按时间fykwrbwg1#
将此行编辑为:(如果您需要
zero to be displayed instead of negative
数字)如果您需要
negative numbers not to be displayed
:xbp102n02#
在方法
one_dimensional_array()
中,使用嵌套的for
循环检查A
中的所有项,并有条件地更新B
中的项:使用
i
和j
来迭代A
的项,如您所料:循环遍历三行和三列。使用
i
迭代B
* 的索引的方式会阻止您迭代B
的所有索引 *。实际上,您只在索引0、1和2上循环(根据您在外部for
循环中对i
的可能范围的指示)。在嵌套循环中,将点击
if (A[i, j] > 0)
行九次。i
、j
、A[i, j]
和B[i]
的值将更改如下:结果,
B[0]
**被指定为A
中 * 第一 * 行中的*最后一个 * 正值(如果该行中有任何值为正值)B[1]
**被指定为A
中 * 第二 * 行的*最后一个 * 正值(如果该行中有任何值为正值)B[2]
**被指定为A
中 * 第三 * 行的*最后一个 * 正值(如果该行中有任何值为正值)因此,您需要一种方法来迭代
B
的所有索引(即0
--8
)。可以基于已经存在的
i
和j
值来计算这样的参数:变量k = f(i,j)
其可以如下使用:
你能算出
k
的表达式吗?