C#小白例题记录1:用户输入两个数字,求两数字之间所有整数的和。

ljg3081022a 2019-06-24 10:25:34
本小白自己写的,请大家指教。 using System; class Calculate { static void Main () { int a=0; int b=0; int all=0; while(true) { bool s=true; try { Console.WriteLine("请输入第一个数字:"); a=(int)Convert.ToDouble(Console.ReadLine()); Console.WriteLine("请输入第二个数字:"); b=(int)Convert.ToDouble(Console.ReadLine()); } catch { Console.WriteLine("输入不正确,请重新输入"); s=false; } if(s) break; } Console.WriteLine("两数之间的整数有:{0}个。",Math.Abs(a-b)-1); if(a<b) { for(int i=a+1;i<b;i++) { try { if(b-a>1) checked{all+=i;} else all=0; } catch { Console.WriteLine("超出范围!"); return; } } } else { for(int i=b+1;i<a;i++) { try { if(a-b>1) checked{all+=i;} else all=0; } catch { Console.WriteLine("超出范围!"); return; } } } Console.WriteLine("它们之间的和为{0}",all); } }
...全文
814 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2019-06-26
  • 打赏
  • 举报
回复
???没看上面的 我想问一句,你们想说的是这个么?? int res = Enumerable.Range(小值, 大值 - 小值).Sum();
Dear200892 2019-06-26
  • 打赏
  • 举报
回复
ref引用传递,使用前要先声明并且赋值,假设某个方法返回bool类型,但是你还想要里面其中一个值,你就可以通过ref将这个值带出来。
Dear200892 2019-06-25
  • 打赏
  • 举报
回复


        static void Main(string[] args)
        {
            Game();
            Console.ReadKey();
        }
        /// <summary>
        /// 获取两位数
        /// </summary>
        /// <param name="Num1"></param>
        /// <param name="Num2"></param>
        /// <returns></returns>
        public static bool GetNum(ref int Num1, ref int Num2)
        {
            double result = 0;
            Console.WriteLine("请输入第一位数:");
            string a = Console.ReadLine();
            bool isNum1 = double.TryParse(a, out result);//能否转化为数字
            Console.WriteLine("请输入第二位数:");
            string b = Console.ReadLine();
            bool isNum2 = double.TryParse(b, out result);//能否转化为数字
            if (isNum1 && isNum2)
            {
                Num1 = (int)Convert.ToDouble(a);
                Num2 = (int)Convert.ToDouble(b);
                return true;
            }
            else
            {
                return false;
            }
        }
        /// <summary>
        /// 数字求和
        /// </summary>
        /// <param name="Num1"></param>
        /// <param name="Num2"></param>
        public static void Summation(int Num1, int Num2)
        {
            int Sum = 0;
            List<int> numList = new List<int>();
            if (Num1 > Num2)
            {
                for (int i = Num2 + 1; i < Num1; i++)
                {
                    Sum += i;
                    numList.Add(i);
                }
            }
            else if (Num1 < Num2)
            {
                for (int i = Num1 + 1; i < Num2; i++)
                {
                    Sum += i;
                    numList.Add(i);
                }
            }
            else if (Num1 == Num2)
            {
                Sum = 0;
            }
            if (Num1 == Num2)
            {
                Console.WriteLine("两数之间的整数为空,和为0!");
            }
            else
            {
                StringBuilder builder = new StringBuilder();
                foreach (var item in numList)
                {
                    builder.AppendFormat(item.ToString() + ",");
                }
                Console.WriteLine("两数之间的整数为:" + builder.ToString());
            }
            Console.WriteLine("{0}到{1}之间的整数和为{2}", Num1, Num2, Sum);           
        }
        /// <summary>
        /// 是否继续
        /// </summary>
        /// <param name="Num1"></param>
        /// <param name="Num2"></param>
        public static void Again(int Num1, int Num2)
        {
            Console.WriteLine("是否重新开始本程序?");
            Console.WriteLine("1:重新开始         0:拒绝开始");
            string isOk = Console.ReadLine();
            if (isOk == "1")
            {
                Game();
            }
            else if (isOk == "0")
            {
                Console.WriteLine("计算结束!");
            }
            else
            {
                Again(Num1, Num2);
            }
        }

        public static void Game()
        {
            int Num1 = 0;
            int Num2 = 0;
            if (GetNum(ref Num1, ref Num2))
            {
                Summation(Num1, Num2);
                Again(Num1, Num2);
            }
            else
            {
                Console.WriteLine("请重新输入规范的数字!");
                GetNum(ref Num1, ref Num2);
            }
        }       
Dear200892 2019-06-25
  • 打赏
  • 举报
回复

            int Num1 = 0;
            int Num2 = 0;
            int Sum = 0;
            List<int> numList=new List<int> ();
            Console.WriteLine("请输入第一位数:");
            Num1=(int)Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("请输入第二位数:");
            Num2 = (int)Convert.ToDouble(Console.ReadLine());
            if (Num1>Num2)
            {
                for (int i = Num2 + 1; i < Num1; i++)
                {
                    Sum += i;
                    numList.Add(i);
                }
            }
            else if (Num1 < Num2)
            {
                for (int i = Num1 + 1; i < Num2; i++)
                {
                    Sum += i;
                    numList.Add(i);
                }
            }
            else if (Num1==Num2)
            {
                Sum = 0;
            }
            if (Num1 == Num2)
            {
                Console.WriteLine("两数之间的整数为空,和为0!");
            }
            else
            {
                StringBuilder builder = new StringBuilder();
                foreach (var item in numList)
                {
                    builder.AppendFormat(item.ToString() + ",");
                }
                Console.WriteLine("两数之间的整数为:"+ builder.ToString());
            }
            Console.WriteLine("{0}到{1}之间的整数和为{2}",Num1,Num2,Sum);
            Console.ReadKey();
Dear200892 2019-06-25
  • 打赏
  • 举报
回复
楼下代码十个字给你了
ljg3081022a 2019-06-25
  • 打赏
  • 举报
回复
引用 3 楼 Dear200892的回复:


        static void Main(string[] args)
        {
            Game();
            Console.ReadKey();
        }
        /// <summary>
        /// 获取两位数
        /// </summary>
        /// <param name="Num1"></param>
        /// <param name="Num2"></param>
        /// <returns></returns>
        public static bool GetNum(ref int Num1, ref int Num2)
        {
            double result = 0;
            Console.WriteLine("请输入第一位数:");
            string a = Console.ReadLine();
            bool isNum1 = double.TryParse(a, out result);//能否转化为数字
            Console.WriteLine("请输入第二位数:");
            string b = Console.ReadLine();
            bool isNum2 = double.TryParse(b, out result);//能否转化为数字
            if (isNum1 && isNum2)
            {
                Num1 = (int)Convert.ToDouble(a);
                Num2 = (int)Convert.ToDouble(b);
                return true;
            }
            else
            {
                return false;
            }
        }
        /// <summary>
        /// 数字求和
        /// </summary>
        /// <param name="Num1"></param>
        /// <param name="Num2"></param>
        public static void Summation(int Num1, int Num2)
        {
            int Sum = 0;
            List<int> numList = new List<int>();
            if (Num1 > Num2)
            {
                for (int i = Num2 + 1; i < Num1; i++)
                {
                    Sum += i;
                    numList.Add(i);
                }
            }
            else if (Num1 < Num2)
            {
                for (int i = Num1 + 1; i < Num2; i++)
                {
                    Sum += i;
                    numList.Add(i);
                }
            }
            else if (Num1 == Num2)
            {
                Sum = 0;
            }
            if (Num1 == Num2)
            {
                Console.WriteLine("两数之间的整数为空,和为0!");
            }
            else
            {
                StringBuilder builder = new StringBuilder();
                foreach (var item in numList)
                {
                    builder.AppendFormat(item.ToString() + ",");
                }
                Console.WriteLine("两数之间的整数为:" + builder.ToString());
            }
            Console.WriteLine("{0}到{1}之间的整数和为{2}", Num1, Num2, Sum);           
        }
        /// <summary>
        /// 是否继续
        /// </summary>
        /// <param name="Num1"></param>
        /// <param name="Num2"></param>
        public static void Again(int Num1, int Num2)
        {
            Console.WriteLine("是否重新开始本程序?");
            Console.WriteLine("1:重新开始         0:拒绝开始");
            string isOk = Console.ReadLine();
            if (isOk == "1")
            {
                Game();
            }
            else if (isOk == "0")
            {
                Console.WriteLine("计算结束!");
            }
            else
            {
                Again(Num1, Num2);
            }
        }

        public static void Game()
        {
            int Num1 = 0;
            int Num2 = 0;
            if (GetNum(ref Num1, ref Num2))
            {
                Summation(Num1, Num2);
                Again(Num1, Num2);
            }
            else
            {
                Console.WriteLine("请重新输入规范的数字!");
                GetNum(ref Num1, ref Num2);
            }
        }       
这个没太看懂 引用参数吗?
wid999 2019-06-25
  • 打赏
  • 举报
回复
使用等差数列公式:
        public static int SumBetween(int a, int b)
{
int iMin = Math.Min(a, b) + 1;
int n = Math.Max(a, b) - Math.Min(a, b) - 1;
return n * iMin + (n * (n - 1)) / 2;
}

直接加:
        public static int SumBetween(int a, int b)
{
int iSum = 0;
for (int I = Math.Min(a, b) + 1; I < Math.Max(a, b); I++)
iSum += I;
return iSum;
}
极客诗人 2019-06-25
  • 打赏
  • 举报
回复
这似曾相识的感觉

 static int sum(int star, int end)
        {
            if (star == end)
            {
                return star;
            }
            return end+sum(star, end - 1);
        }
wangmoxhn 2019-06-25
  • 打赏
  • 举报
回复
(a+b)*(a-b+1)/2
enaking 2019-06-25
  • 打赏
  • 举报
回复
楼下正解。。。
ljg3081022a 2019-06-25
  • 打赏
  • 举报
回复
这个方法我试过了 很不错

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧