Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.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# 要求用户输入5个数字,然后使用循环将总数相加 使用系统; 双打 { 静态void Main() { //声明变量 双DblSumTotal=0; 双限=0; //要求用户输入5个要添加的数字 Console.Clear(); Console.WriteLine(“输入5个要相加的数字”); 做 { DblSumTotal=DblSumTotal+(Convert.ToDouble(Console.ReadLine()); 极限=极限+1; }而(限值_C# - Fatal编程技术网

C# 要求用户输入5个数字,然后使用循环将总数相加 使用系统; 双打 { 静态void Main() { //声明变量 双DblSumTotal=0; 双限=0; //要求用户输入5个要添加的数字 Console.Clear(); Console.WriteLine(“输入5个要相加的数字”); 做 { DblSumTotal=DblSumTotal+(Convert.ToDouble(Console.ReadLine()); 极限=极限+1; }而(限值

C# 要求用户输入5个数字,然后使用循环将总数相加 使用系统; 双打 { 静态void Main() { //声明变量 双DblSumTotal=0; 双限=0; //要求用户输入5个要添加的数字 Console.Clear(); Console.WriteLine(“输入5个要相加的数字”); 做 { DblSumTotal=DblSumTotal+(Convert.ToDouble(Console.ReadLine()); 极限=极限+1; }而(限值,c#,C#,这是我目前掌握的代码。它将编译,但我在尝试运行它时收到一个错误: 未处理的异常:输入字符串的格式不正确。位于sumtoubles.Main()的System.Double.Parse(字符串s,IFormatProvider provider)处的System.Number.ParseDouble(字符串值、NumberStyles选项、NumberFormat信息numfmt) 我对编码非常陌生,我似乎无法理解循环。请帮助!转换。ToDouble会在输入错误时抛出您看到的异常,例如空字符串。您

这是我目前掌握的代码。它将编译,但我在尝试运行它时收到一个错误:

未处理的异常:输入字符串的格式不正确。位于sumtoubles.Main()的System.Double.Parse(字符串s,IFormatProvider provider)处的System.Number.ParseDouble(字符串值、NumberStyles选项、NumberFormat信息numfmt)


我对编码非常陌生,我似乎无法理解循环。请帮助!

转换。ToDouble
会在输入错误时抛出您看到的异常,例如空字符串。您可能想使用
try catch
块来处理异常,或者您也可以使用不在f中抛出的块输入错误的ace

using System;
 class SumDoubles
 {
    static void Main()
    {   
        //Declare variables
        double DblSumTotal = 0;
        double LIMIT = 0;


        //Ask user to input 5 numbers to be added
        Console.Clear();
        Console.WriteLine("Enter 5 numbers to be added together.");
        do 
        {
            DblSumTotal = DblSumTotal + (Convert.ToDouble(Console.ReadLine()));
            LIMIT = LIMIT + 1;
        } while (LIMIT < 6);

        //Output total
        Console.WriteLine("The total sum of the 5 numbers is " + DblSumTotal);
        Console.ReadLine();
    }   
}
我还注意到这段代码中有一个“offby1”错误

double output;
bool isValid = double.TryParse("10", out output); // isValid is true and output contains 10
isValid = double.TryParse("lsdf", out output); // isValid is false
Console.WriteLine(“输入5个要相加的数字”);
做
{
DblSumTotal=DblSumTotal+(Convert.ToDouble(Console.ReadLine());
极限=极限+1;
}而(限值<6);

您的循环有6次迭代(LIMIT=0,1,2,3,4,5),您需要5个数字。您可能正在按一个额外的“enter”键,这会导致一个空字符串
传递到
Convert.ToDouble
,从而导致异常。将
while(LIMIT<6)
更改为
while(LIMIT<5)

您的程序运行正常,只是它读取的是六个数字而不是五个数字

我认为你的问题与静电复印所说的有关,你试图同时输入所有的数字

如果您键入“4”输入“5”输入“10”输入等等,它将正常工作。=)


PS:请记住,“.”和“.”之间有区别

Sasse和Tejas Sharma都有一个观点。完整的代码可能如下所示:

Console.WriteLine("Enter 5 numbers to be added together.");
do 
{
    DblSumTotal = DblSumTotal + (Convert.ToDouble(Console.ReadLine()));
    LIMIT = LIMIT + 1;
} while (LIMIT < 6);
使用系统;
双打
{
静态void Main()
{   
//声明变量
双DblSumTotal=0;
双限=0;
//要求用户输入5个要添加的数字
Console.Clear();
Console.WriteLine(“输入5个要相加的数字”);
做
{
双d;
如果(!double.TryParse(Console.ReadLine(),out d)){
Console.WriteLine(“格式错误!!!”);
}否则{
DblSumTotal=DblSumTotal+d;
极限=极限+1;
}
}而(限值<5);
//总产量
Console.WriteLine(“5个数字的总和为”+DblSumTotal);
Console.ReadLine();
}   
}
`
另外,如果你像我一样使用非英语语言环境(我有捷克语系统),那么可以解析为double的字符串看起来有点不同(即捷克语“1,2”与英语“1.2”)

我认为可以通过使用for循环来简化

 using System;
 class SumDoubles
 {
    static void Main()
    {   
        //Declare variables
        double DblSumTotal = 0;
        double LIMIT = 0;


        //Ask user to input 5 numbers to be added
        Console.Clear();
        Console.WriteLine("Enter 5 numbers to be added together.");
        do 
        {
            double d;
            if (!double.TryParse(Console.ReadLine(), out d)) {
                Console.WriteLine("Format error!!!");
            } else {
                DblSumTotal = DblSumTotal + d;
                LIMIT = LIMIT + 1;
            }

        } while (LIMIT < 5);

        //Output total
        Console.WriteLine("The total sum of the 5 numbers is " + DblSumTotal);
        Console.ReadLine();
    }   
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
命名空间控制台应用程序2
{
班级计划
{
静态void Main(字符串[]参数)
{
int-read;
整数和=0;
Console.WriteLine(“输入5个数字:”);
对于(int i=0;i<5;i++)
{
read=int.Parse(Console.ReadLine());
总和=总和+读取;
}
Console.WriteLine(“5个数字的总和为”+总和);
}
}
}
或者,如果您仍然想使用while循环,它也同样简单

   using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

        namespace ConsoleApplication2
        {
            class Program
            {
                static void Main(string[] args)
                {
                    int read;
                    int sum = 0;
                    Console.WriteLine("Enter 5 numbers: "); 
                    for (int i = 0; i < 5; i++)
                    {
                       read = int.Parse(Console.ReadLine());
                       sum = sum + read;
                    }

                    Console.WriteLine("The total sum of the 5 numbers are " + sum);
                }
            }
        }
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
命名空间控制台应用程序2
{
班级计划
{
静态void Main(字符串[]参数)
{
int-read;
整数和=0;
int i=0;
Console.WriteLine(“输入5个数字:”);

输入是数字。我通常试着把5个1加在一起。输出应该是“5个数字的总和是5”“但是我收到一个错误,我在哪里转换错误了?你在每个输入数字后按回车键了吗?听起来你可能没有按照你编码的方式使用这个程序作为旁注,按照你循环的方式,它实际上需要6个数字而不是5个…因为do while()在最后计算表达式。我认为while循环或for循环在这里更合适。哦,尝试分解您的语句,以便设置断点并查看到底发生了什么。这就是我要做的。我键入1,然后输入5次并收到错误。正如我所说的,它希望您按现在的方式执行六次。因此如果你上次只是按“回车”然后它将获取您的空字符串并尝试转换它,这将失败并引发异常。@LeFemur'键入1并输入'5次,或键入1并输入'5次'?因为空语句将创建异常。您只需设置断点并调试它。那么如何使它只显示总数而不必按输入?当我设置了一个限制时,为什么它会接受超过5个答案?哦,太糟糕了。你现在已经将“while(limit<6)”行更改为“while(limit<5)”。当我复制你的代码时,那里有一个6而不是5。i
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int read;
            int sum = 0;
            int i = 0;
            Console.WriteLine("Enter 5 numbers: "); 
            while(i<5)
            {
               read = int.Parse(Console.ReadLine());
               sum = sum + read;
               i++;
            }

            Console.WriteLine("The total sum of the 5 numbers are " + sum);
        }
    }
}