C# 当用户输入对应的前半部分时,我尝试输出多维数组的后半部分 使用系统; 名称空间MyNameSpace { 类别递送费 { 静态void Main() { //声明变量 双[,]dblZipArray={{40214,5.00},{40245,4.85},{40248,2.67},{40272,3.79},{40299,5.40},{42103,2.30},{42133,4.60},{42141,1.00},{42160,1.45},{42303 3.60}; 双dblUserZIP; int x; Console.Clear(); //向用户询问邮政编码 Console.WriteLine(“请输入邮政编码以查看该地区的送货费用。”); dblUserZIP=Convert.ToDouble(Console.ReadLine()); x=Array.BinarySearch(dblZipArray,dblUserZIP); if(x
}C# 当用户输入对应的前半部分时,我尝试输出多维数组的后半部分 使用系统; 名称空间MyNameSpace { 类别递送费 { 静态void Main() { //声明变量 双[,]dblZipArray={{40214,5.00},{40245,4.85},{40248,2.67},{40272,3.79},{40299,5.40},{42103,2.30},{42133,4.60},{42141,1.00},{42160,1.45},{42303 3.60}; 双dblUserZIP; int x; Console.Clear(); //向用户询问邮政编码 Console.WriteLine(“请输入邮政编码以查看该地区的送货费用。”); dblUserZIP=Convert.ToDouble(Console.ReadLine()); x=Array.BinarySearch(dblZipArray,dblUserZIP); if(x,c#,arrays,multidimensional-array,C#,Arrays,Multidimensional Array,} 例如,当用户输入“42141”时,正确的输出应该是:“邮递到邮政编码42141的价格是$1.00”。当编译此代码时,我会出错。我不记得如何正确引用多维数组。请帮忙 首先,它不是编译,因为必须使用[x,y]从多维数组中访问单个值。例如,dblZipArray[0,0]将返回40214,dblZipArray[0,1]将返回5.00 其次,不能在多维数组上使用Array.BinarySearch。没有内置的方法以这种方式搜索二进制数组,因此您必须编写自己的搜索函数 这里有一些示例代码,虽然它可以
例如,当用户输入“42141”时,正确的输出应该是:“邮递到邮政编码42141的价格是$1.00”。当编译此代码时,我会出错。我不记得如何正确引用多维数组。请帮忙 首先,它不是编译,因为必须使用[x,y]从多维数组中访问单个值。例如,dblZipArray[0,0]将返回40214,dblZipArray[0,1]将返回5.00 其次,不能在多维数组上使用Array.BinarySearch。没有内置的方法以这种方式搜索二进制数组,因此您必须编写自己的搜索函数
这里有一些示例代码,虽然它可以对用户的输入进行错误检查,但可能会使用更有效的搜索(特别是如果您知道您的邮政编码列表已排序),也可以考虑将双数组改写为具有int zip码和双价格的结构或类,因为zip是一个双浪费空间,这使得.length之类的函数对您的用例的操作更具逻辑性(对于多维数组,它返回数组中的单元格总数,而您可能希望它返回您支持的邮政编码数)
编辑:正如brz在下面指出的,一本字典会更好using System;
namespace MyNameSpace
{
class DeliveryCharges
{
static void Main()
{
//Declare variables
double[ , ] dblZipArray = {{40214, 5.00}, {40245, 4.85}, {40248, 2.67}, {40272, 3.79}, {40299, 5.40}, {42103, 2.30}, {42133, 4.60}, {42141, 1.00}, {42160, 1.45}, {42303, 3.60}};
double dblUserZIP;
int x;
Console.Clear();
//Ask user for zip code
Console.WriteLine("Please enter a ZIP code to view the delivery charge for that area.");
dblUserZIP = Convert.ToDouble(Console.ReadLine());
x = Array.BinarySearch(dblZipArray, dblUserZIP);
if(x < 0)
{
Console.WriteLine("ZIP Code {0} is not in our delivery area.", dblUserZIP);
}
else
{
Console.WriteLine("The price of delivery to ZIP code {0} is ${1}", dblUserZIP, dblZipArray[dblUserZIP]);
}
Console.ReadLine();
}
}
static void Main()
{
//声明变量
双[,]dblZipArray={{40214,5.00},{40245,4.85},{40248,2.67},{40272,3.79},{40299,5.40},{42103,2.30},{42133,4.60},{42141,1.00},{42160,1.45},{42303 3.60};
双dblUserZIP;
Console.Clear();
//向用户询问邮政编码
Console.WriteLine(“请输入邮政编码以查看该地区的送货费用。”);
dblUserZIP=Convert.ToDouble(Console.ReadLine());
int-zip;
对于(zip=0;zip
首先,它不是编译,因为必须使用[x,y]从多维数组中访问单个值。例如,dblZipArray[0,0]将返回40214,dblZipArray[0,1]将返回5.00
其次,不能在多维数组上使用Array.BinarySearch。没有内置的方法以这种方式搜索二进制数组,因此您必须编写自己的搜索函数
这里有一些示例代码,虽然它可以对用户的输入进行错误检查,但可能会使用更有效的搜索(特别是如果您知道您的邮政编码列表已排序),也可以考虑将双数组改写为具有int zip码和双价格的结构或类,因为zip是一个双浪费空间,这使得.length之类的函数对您的用例的操作更具逻辑性(对于多维数组,它返回数组中的单元格总数,而您可能希望它返回您支持的邮政编码数)
编辑:正如brz在下面指出的,一本字典会更好using System;
namespace MyNameSpace
{
class DeliveryCharges
{
static void Main()
{
//Declare variables
double[ , ] dblZipArray = {{40214, 5.00}, {40245, 4.85}, {40248, 2.67}, {40272, 3.79}, {40299, 5.40}, {42103, 2.30}, {42133, 4.60}, {42141, 1.00}, {42160, 1.45}, {42303, 3.60}};
double dblUserZIP;
int x;
Console.Clear();
//Ask user for zip code
Console.WriteLine("Please enter a ZIP code to view the delivery charge for that area.");
dblUserZIP = Convert.ToDouble(Console.ReadLine());
x = Array.BinarySearch(dblZipArray, dblUserZIP);
if(x < 0)
{
Console.WriteLine("ZIP Code {0} is not in our delivery area.", dblUserZIP);
}
else
{
Console.WriteLine("The price of delivery to ZIP code {0} is ${1}", dblUserZIP, dblZipArray[dblUserZIP]);
}
Console.ReadLine();
}
}
static void Main()
{
//声明变量
双[,]dblZipArray={{40214,5.00},{40245,4.85},{40248,2.67},{40272,3.79},{40299,5.40},{42103,2.30},{42133,4.60},{42141,1.00},{42160,1.45},{42303 3.60};
双dblUserZIP;
Console.Clear();
//向用户询问邮政编码
Console.WriteLine(“请输入邮政编码以查看该地区的送货费用。”);
dblUserZIP=Convert.ToDouble(Console.ReadLine());
int-zip;
对于(zip=0;zip
您使用了错误的数据结构:
static void Main()
{
//Declare variables
double[,] dblZipArray = { { 40214, 5.00 }, { 40245, 4.85 }, { 40248, 2.67 }, { 40272, 3.79 }, { 40299, 5.40 }, { 42103, 2.30 }, { 42133, 4.60 }, { 42141, 1.00 }, { 42160, 1.45 }, { 42303, 3.60 } };
double dblUserZIP;
Console.Clear();
//Ask user for zip code
Console.WriteLine("Please enter a ZIP code to view the delivery charge for that area.");
dblUserZIP = Convert.ToDouble(Console.ReadLine());
int zip;
for (zip = 0; zip < dblZipArray.Length / 2; zip++ )
{
if (dblZipArray[zip,0] == dblUserZIP)
{
break;
}
}
if (zip == dblZipArray.Length /2)
{
Console.WriteLine("ZIP Code {0} is not in our delivery area.", dblUserZIP);
}
else
{
Console.WriteLine("The price of delivery to ZIP code {0} is ${1}", dblUserZIP, dblZipArray[zip, 1]);
}
Console.ReadLine();
}
static void Main()
{
//宣布