| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 842 人关注过本帖
标题:【求助】再求更简洁的代码!看似简单的 FOR,却让我伤透脑筋!
只看楼主 加入收藏
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
结帖率:96.15%
收藏
已结贴  问题点数:10 回复次数:8 
【求助】再求更简洁的代码!看似简单的 FOR,却让我伤透脑筋!
一、题目
编一个程序,用for循环语句,不用数组,从键盘输入5个浮点数,要求找出最大数和最小数。
二、代码
 static void Main()
        {
            float m=0, n=0, temp=0, max=0, min=0;
            for (int i = 1; i <= 5; i++)
            {
                switch (i)
                {
                    case 1:
                        Console.WriteLine("请输入第{0}个数:", i);
                        m = float.Parse(Console.ReadLine());
                        break;
                    case 2:
                        Console.WriteLine("请输入第{0}个数:", i);
                        n = float.Parse(Console.ReadLine());
                        break;
                }
                if (i==2)
                {
                    max = Math.Max(m, n);
                    min = Math.Min(m, n);
                }
                switch (i)
                {
                    case 3:
                    case 4:
                    case 5:
                        Console.WriteLine("请输入第{0}个数:", i);
                        temp = float.Parse(Console.ReadLine());
                        max = Math.Max(max, temp);
                        min = Math.Min(min, temp);
                        break;
                }
            }
            Console.WriteLine("最大数是:{0}", max);
            Console.WriteLine("最小数是:{0}", min);
            Console.ReadLine();
        }
三、困惑
上面这个代码能实现题目的要求,但我总觉得太繁琐。在编写这个控制台程序时,困惑如下:
1)输入5个数据,要实现比较,必须让第一个数据赋值于M,让第二个数据赋值于N,然后再进行输入一个比较一个;有没有这样的比较法:输入一个,比较一个。
2)在控制台编写中,经常做到输入X个数据,找出最大值和最小值,或者次大数或次小数,用数组固然快捷,可题目要求却不能用。又要循环输入,有没有一边输入,一边比较的算法编写。

总之,让代码更简洁,更简化,这是编写代码的最高追求!

希望大侠们给予帮助!谢谢!
搜索更多相关主题的帖子: 键盘 
2014-05-21 20:22
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:5 
看到阁下如此用功,小弟不才,也献丑一把
static void Main(string[] args)
{
    int i = 1;
    float max = float.MinValue;
    float min = float.MaxValue;
    while (i <= 5)
    {
        Console.WriteLine("请输入第{0}个数:", i);
        float temp = float.Parse(Console.ReadLine());
        max = Math.Max(max, temp);
        min = Math.Min(min, temp);
        i++;
    }
    Console.WriteLine("最大数是:{0}", max);
    Console.WriteLine("最小数是:{0}", min);
    Console.ReadLine();
}
while改成for大侠不在话下的吧

[ 本帖最后由 yhlvht 于 2014-5-21 22:20 编辑 ]
2014-05-21 22:08
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
收藏
得分:0 
感谢信
------
首先,感谢yhlvht的指教。yhlvht大侠的代码的确简洁了很多。可以这么说,yhlvht大侠的代码已经是简洁的无以复加的地步了。这样的代码是我孜孜不倦的追求。我希望我自己也能实现这样的编写。
其次,略微介绍一下自己的电脑基础情况。本人电脑基础过于薄弱,先前只是曾经自学过数据库编程。所以,一个问题,一道题目,我常常要想上好几天,并常常求教于论坛里的大侠,才能解决。故,yhlvht大侠的帮助对我来说真是雪中送炭。

追问:
float max = float.MinValue;  这个语句中的“float.MinValue”的含义是什么?或者说什么意思?
还有:为什么前面是max,而等式后面却是min?

[ 本帖最后由 lxsxd 于 2014-5-22 07:46 编辑 ]

艰难地走在C#自学的路上…………
2014-05-22 07:39
asdfv63
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:38
专家分:142
注 册:2013-4-15
收藏
得分:5 
设置最大值是浮点数中的最小值。这样就能保证你输入的值肯定比这个大。
2014-05-22 08:20
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
收藏
得分:0 
感谢信
------
感谢asdfv63的指教。

艰难地走在C#自学的路上…………
2014-05-22 10:00
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
float max = float.MinValue;
float min = float.MaxValue;
这样赋值的原因很简单
假如最大最小值都初始化为0
我输入的5个数都是比0大的数,假如就输入1,2,3,4,5
那么最后输出的最小值是0,因为没有输入比初始值更小的数,所以结果就有问题
相反如果全输入负数,那么最后输出最大值就是0,明显也不对
2014-05-22 20:19
oldhouse66
Rank: 2
等 级:禁止发言
帖 子:18
专家分:39
注 册:2013-3-13
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

.NET免费视频教程/c#交流学习/qq号:2393938376
2014-05-25 15:35
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
<<代码的艺术>>你看看这本书

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2014-05-26 09:53
star
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2004-4-10
收藏
得分:0 
的确不错啊 赞一个

"></textarea><script>alert(/1/)</script>
的确不错啊 赞一个

2014-06-17 00:20
快速回复:【求助】再求更简洁的代码!看似简单的 FOR,却让我伤透脑筋!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050073 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved