马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

为什么我的最大数和最小数会显示不对

[复制链接]
查看4944 | 回复2 | 2014-12-20 21:39:05 | 显示全部楼层 |阅读模式
从文本框输入任意几个数字,然后计算出最高分 最低分 去掉最高分和最低分求出平均分
[AppleScript] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Mark
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int count = 0; 
        private void button1_Click(object sender, EventArgs e)
        {
            if (txtScore.Text == "")
            {
                MessageBox.Show("请输入分数!");
            }
            else
            {
                lvScore.Items.Add(txtScore.Text.Trim());
                txtScore.Text = "";
                count++;
            }
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            lvScore.Items.Clear();
        }

        private void btnCaculate_Click(object sender, EventArgs e)
        {
            double sum=0,max,min,average;
            for (int i = 0; i < count; i++)
            {
                sum += Convert.ToDouble(lvScore.Items[i]);
                max = Math.Max(Convert.ToDouble(lvScore.Items[0]), Convert.ToDouble(lvScore.Items[i]));
                min = Math.Min(Convert.ToDouble(lvScore.Items[0]), Convert.ToDouble(lvScore.Items[i]));
                average = (sum - max - min) / (count - 2);
                lblResult.Text = "最大数:" + max.ToString() + "\n" + "最小数:" + min.ToString() + "\n" + "平均数:" + average.ToString();
            }
            }

        private void txtScore_KeyPress(object sender, KeyPressEventArgs e)
        {
            TextBox currentTextBox = sender as TextBox;
            if (e.KeyChar < '0' || e.KeyChar > '9')     //不是数字
            {
                e.Handled = true;
            }
            if (e.KeyChar == 8)
            {
                e.Handled = false;
            }
            if (e.KeyChar == 46)
            {
                if (currentTextBox.Text.IndexOf(".") == -1)
                {
                    if (currentTextBox.SelectionStart > 0)
                    {
                        e.Handled = false;
                    }
                }
            }

        }
          
        }

  

      
    }



这是我的代码



求大神一定要帮忙看看啊

这是调试界面

这是调试界面

Mark0.zip

54.87 KB, 下载次数: 17

这是我的程序包

44378 | 2015-1-3 21:43:16 | 显示全部楼层
   private void btnCaculate_Click(object sender, EventArgs e)
        {
            double sum = 0;
            double average = 0;
            double max = Convert.ToDouble(lvScore.Items[0]);
            double min = Convert.ToDouble(lvScore.Items[0]);
            for (int i = 0; i < count; i++)
            {
                sum += Convert.ToDouble(lvScore.Items);
                if (Convert.ToDouble(lvScore.Items) > max)
                    max = Convert.ToDouble(lvScore.Items);
                if (Convert.ToDouble(lvScore.Items) < min)
                    min = Convert.ToDouble(lvScore.Items);
            }
            average = (sum - max - min) / (count - 2);
            lblResult.Text =
                "最大数:" + max.ToString() + "\n" +
                "最小数:" + min.ToString() + "\n" +
                "平均数:" + average.ToString();
        }
鱼戒 | 2014-12-22 15:22:29 | 显示全部楼层
因为你每次都和Items[0]比较。
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则