问题描述
本人初学者,希望大家可以帮帮忙~
解决方案
解决方案二:
学会调试你自己就会明白的~
解决方案三:
这个还真要自己去调试,这种问题一般不是什么技术性的问题!
解决方案四:
错误原因在下面代码注释。回答你是因为当初开始学的时候也有很多白痴的问题,希望能帮助你。提几点建议:1.问问题你可以把代码粘贴下来吗,搞个截图你是要我回来了拿去赚分吗2.要是真的学编程,请注意几点:学会数组的操作,变量初始化,加断点调试int[]number=newint[5];//错误的关键在于4个数,你定个数组长度设为5干嘛。而且不初始化时大忌。//你要是初始化你就会发现number[4]这个数你根本没赋值,系统帮你赋的0.for(inti=0;i<4;i++){Console.WriteLine("input{0}number",i+1);number[i]=Convert.ToInt32(Console.ReadLine());}intsum,max,min;//新手从开始养成好习惯。。。变量定义最好一行一个并进行初始化sum=comput(number,outmax,outmin);Console.WriteLine("sumis{0},minis{1},maxis{2}",sum,min,max);Console.ReadKey();}publicstaticintcomput(int[]number,outintmax,outintmin){intsum=0;max=number[0];min=number[0];for(inti=0;i<number.Length;i++)//这里,循环5次。{sum+=number[i];if(number[i]>max){max=number[i];}elseif(number[i]<min)//还是好习惯,如果都是最大数了还执行这个判断干嘛,虽然是小细节,但是别做无用功{min=number[i];}}returnsum/number.Length;}
解决方案五:
out用的挺好的,错误和out无关。感觉你说和out有关是你完全不懂加out是要干嘛的节奏啊。
解决方案六:
问题在于,数组的长度是5,而你只给前4个赋了值,最后一个是默认值0,那么当然有0啦,调试得太不认真了,稍微看一下就能发现这个问题。另外,对你的代码有两点改进意见:1、在循环里多次采用下标访问数组,建议先存在一个变量里进行比较。2、对于有多个返回值的情况(2个以上),建议用一个类来包装返回结果。修改以后的代码如下:privatestaticComputeResultCompute(int[]numbers){if(numbers==null)thrownewArgumentNullException("numbers");intsum=0,min=int.MaxValue,max=int.MinValue;for(inti=0;i<numbers.Length;i++){intvalue=numbers[i];sum+=value;if(value>max)max=value;if(value<min)min=value;}returnnewComputeResult(sum,min,max);}classComputeResult{publicComputeResult(intsum,intmin,intmax){_sum=sum;_min=min;_max=max;}privateint_sum;publicintSum{get{return_sum;}}privateint_min;publicintMin{get{return_min;}}privateint_max;publicintMax{get{return_max;}}}//调用代码varresult=Compute(newint[]{10,20,30,40});Console.WriteLine("最小值{0},最大值{1},合计{2}",result.Min,result.Max,result.Sum);