问题描述
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms; namespaceMark{ publicpartialclassForm1:Form { publicForm1() { InitializeComponent(); } intcount=0; privatevoidbutton1_Click(objectsender,EventArgse) { if(txtScore.Text=="") { MessageBox.Show("请输入分数!"); } else { lvScore.Items.Add(txtScore.Text.Trim()); txtScore.Text=""; count++; } } privatevoidbtnClear_Click(objectsender,EventArgse) { lvScore.Items.Clear(); } privatevoidbtnCaculate_Click(objectsender,EventArgse) { doublesum=0,max,min,average; for(inti=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(); } } privatevoidtxtScore_KeyPress(objectsender,KeyPressEventArgse) { TextBoxcurrentTextBox=senderasTextBox; 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; } } } } } }
这是代码这是界面
解决方案
解决方案二:
我的最大值,最小值没有显示对,比如那张图
解决方案三:
换个思路,把输入的值保存到list集合里,再遍历添加到listview。最后去求list中的max与min,avg值。
解决方案四:
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]));这个地方错了
解决方案五:
这个地方怎么错了
解决方案六:
因为你每次比较的最大数都没有使用,你应该用max和lvScore.Items[i]这个作比较。你这么写永远是取得第一个数和最后一个数的最大或者最小值