【问题标题】:For loop does not execute for given input array对于给定的输入数组,for循环不执行
【发布时间】:2021-03-24 16:48:50
【问题描述】:

我正在尝试制作一个程序来接收大量输入,并为所有输入创建一个平均值。当我尝试执行代码时,循环不起作用,程序立即结束。

这是一张图片 https://i.stack.imgur.com/VywEt.jpg

这是我写的代码:


using System;
using System.Collections;
using System.Collections.Generic;

namespace Practice

{
    class Program
    {
        static void Main(string[] args)
        {
            double[] inputs = new double[]{ };
            Console.WriteLine("How many numbers do you want to average?");
            double z = int.Parse(Console.ReadLine());
            if(z <= 0)
            {
                Console.WriteLine("You cannot average one number. Please restart the program");
            }
            else
            {
                Console.WriteLine("Enter your first number. Press enter after each input. To get the final average type CALCULATE");
                for (int i = 0; i < inputs.Length; i++)
                {
                    Console.WriteLine("Enter you next number");
                    double number = double.Parse(Console.ReadLine());
                }
                string response = null;
                double final = Average(inputs);
                switch (response)
                {
                    case "CALCULATE":
                        Console.WriteLine("The average of all numbers inputed is {0}", final);
                        break;
                }
            }
            

        }

        public static double Average(double[]allnumbers)
        {
            double average = 0;
            for (int i = 0; i < allnumbers.Length; i++)
            {
                average += allnumbers[i];
                average /= allnumbers.Length;
            }
            return average;

        }
    }
}

        



【问题讨论】:

  • 您的inputs 数组为空,这就是程序立即结束的原因。
  • 只有在所有条目相加后,您的平均函数才应该除法

标签: c# for-loop


【解决方案1】:

您的代码几乎没有问题。

  1. 您没有在输入中设置任何内容,因此程序没有执行任何操作。
  2. 响应变量未填充到代码中的任何位置

看看下面的代码,试试看,希望对你有帮助,也让你理解:

static void Main(string[] args)
{
    double[] inputs;
    Console.WriteLine("How many numbers do you want to average?");
    int z = int.Parse(Console.ReadLine());
    if (z <= 0)
    {
        Console.WriteLine("You cannot average one number. Please restart the program");
    }
    else
    {
        inputs = new double[z];
        Console.WriteLine("Enter your first number. Press enter after each input. To get the final average type CALCULATE");
        for (int i = 0; i < inputs.Length; i++)
        {
            double number = -1;
            Console.WriteLine("Enter you next number");
            string response = Console.ReadLine();
            if (double.TryParse(response, out number))
            {
                inputs[i] = number;
            }
            else
            {
                switch (response)
                {
                    case "CALCULATE":
                        double final = Average(inputs);
                        Console.WriteLine("The average of all numbers inputed is {0}", final);
                        break;
                }
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多