亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何創建一個 C# 程序,該程序要求使用循環的值介于 1 和 100 之間

如何創建一個 C# 程序,該程序要求使用循環的值介于 1 和 100 之間

PHP
炎炎設計 2024-01-20 22:18:12
因此,我正在嘗試創建一個 C# 程序,該程序要求一個介于 1 和 100 之間的值,該程序使用循環來確定 1 和輸入值之間所有值的總和,如果輸入的數字小于 1 或大于 100,它會打印出“對不起。再試一次。我已經為此工作了好幾天,但我無法讓它打印總和,我一直得到 0,每當我測試它并輸入低于 1 或超過 100 的數字時,它都不會打印我想要的錯誤消息。代碼如下:using System;namespace PrintSumL{class Program{    static void Main(string[] args)    {        Console.WriteLine("Enter a beginning value between 1 and 100");        int s = Convert.ToInt32(Console.ReadLine());        int sum = 0;        Console.WriteLine("Sum of values: " + sum);        Console.ReadKey();        Random rand = new Random();        rand.Next(1, 51);        while (0 < s && s < 101)        {            sum += s;            s++;            if (s < 0 && 101 < s)            {                Console.WriteLine("Invalid input. Try again.");            }            {            }            {            }        }    }}}
查看完整描述

4 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

您可以將程序視為從上到下逐行執行,并且僅在到達 while 循環結束時向上移動。while 循環的末尾是與循環開始時匹配的。}{


知道了這一點,你就會明白為什么它總是說總和為零。從您的代碼:


int sum = 0;


Console.WriteLine("Sum of values: " + sum);

由于程序執行“從上到下逐行”,因此它將首先設置為 0,然后打印出總和。所以它會一直打印.如果您希望它在計算完總和后打印出總和,則需要將總和的下移到計算總和的位置下方。sum"Sum of values: 0"WriteLine


同樣的問題也適用于 : 打印此語句的行出現在 之后,因此只有在 0 到 101 之間時才會執行。由于您嘗試捕獲不在 0 和 101 之間的場景,因此您需要將語句移動到循環上方。"Invalid input. Try again."while (0 < s && s < 101)sswhile


因此,要解決眼前的問題,只需做兩件事:


1)移動兩條線


Console.WriteLine("Sum of values: " + sum);

Console.ReadKey();

到 while 循環之后(緊跟在 which 之后,與 的縮進級別相同)。}while


2)移動三條線


if (s < 0 && 101 < s)

{

    Console.WriteLine("Invalid input. Try again.");

}

直到正下方,然后仔細檢查邏輯。如果小于零或大于 101,則聽起來要打印語句。int s = Convert.ToInt32(Console.ReadLine());ss


查看完整回答
反對 回復 2024-01-20
?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

如果需要循環,則應遵循 Heath Raftery 說明


否則你可以寫這樣的東西:


 static void Main(string[] args)

 {

     Console.WriteLine("Enter a beginning value between 1 and 100");

     int s = Convert.ToInt32(Console.ReadLine());

     if (s < 0 || s > 100)

         Console.WriteLine("Invalid input. Try again.");

     else

         Console.WriteLine($"Sum of values: {Enumerable.Range(1,s).Sum()}");

 }

或者正如 Haldo 所說,您可以使用 的公式并將最后一個 WriteLine 替換為:N * (N+1) / 2


Console.WriteLine($"Sum of values: {s * (s+1) / 2}")


查看完整回答
反對 回復 2024-01-20
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

這是一個有效的算法......


        Console.WriteLine("Enter a value between 1 and 100");

        var input = int.Parse(Console.ReadLine());

        int sum = 0;

        if (input<1 || input>100) {

            Console.WriteLine("Sorry, Try again");

        }

        else{

            while(input > 2){

                input-=1;

                sum+=input;

             }

        }

        Console.WriteLine("Sum of values: " + sum);


查看完整回答
反對 回復 2024-01-20
?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

試試這個:


static void Main(string[] args)

        {

            while (true)

            {

                Console.Write("Enter a number between 1 and 100: ");

                int Number = Convert.ToInt32(Console.ReadLine());

                if (Number < 0 || Number > 100)

                    Console.WriteLine("Sorry. Try again.");

                else

                {

                    int sum = 0;

                    for (int i = 1; i <= Number; i++)

                    {

                        sum = sum + i;

                    }


                    Console.WriteLine("Sum of values: " + sum);

                }

            }

        }


查看完整回答
反對 回復 2024-01-20
  • 4 回答
  • 0 關注
  • 286 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號