Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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()
    {
    //宣布