黑马程序员技术交流社区

标题: 为什么会报错? [打印本页]

作者: 郭佳佳    时间: 2012-10-9 08:49
标题: 为什么会报错?
static void Main(string[] args)
        {
            int[] nums= { 1, 2, 3 };
            int sum, max, mix;
            sum = compute( nums, out  mix, out  max);
            Console.WriteLine("数组里面的最大值为{0},最小值为{1},和为{2}",max,mix,sum);
            Console.ReadKey();

        }
          static int  compute( int [] i2, out int mix, out int max)
        {
            int sum = 0;
              max = i2[0];
              mix = i2[0];
            for (int i = 0; i < i2.Length; i++)
            {
                sum += i2[i];
                if (max < i2[i])
                {
                    max = i2[i];
                    
                    
                    
                }
                if (mix > i2[i])
                {
                    mix = i2[i];
                    
                }
               
               
               
            }
        }
作者: 刘俊红    时间: 2012-10-9 09:12
本帖最后由 刘俊红 于 2012-10-9 09:13 编辑

方法差return返回值,加上第32行
  1. static void Main(string[] args)
  2.         {
  3.             int[] nums = { 1, 2, 3 };
  4.             int sum, max, min;
  5.             sum = compute(nums, out  min, out  max);

  6.             Console.WriteLine("数组里面的最大值为{0},最小值为{1},和为{2}", max, min, sum);

  7.             Console.ReadKey();

  8.         }
  9.         static int compute(int[] aInts, out int min, out int max)
  10.         {
  11.             int sum = 0;
  12.             max = aInts[0];
  13.             min = aInts[0];
  14.             for (int i = 0; i < aInts.Length; i++)
  15.             {
  16.                 sum += aInts[i];
  17.                 if (max < aInts[i])
  18.                 {
  19.                     max = aInts[i];

  20.                 }
  21.                 if (min > aInts[i])
  22.                 {
  23.                     min = aInts[i];

  24.                 }

  25.             }
  26.             return sum;
  27.         }
  28.     }
复制代码

作者: 曾家伟    时间: 2012-10-9 09:21
函数中需要一个返回值
static int compute(int[] i2, out int mix, out int max)
        {
            int sum = 0;
            max = i2[0];
            mix = i2[0];
            for (int i = 0; i < i2.Length; i++)
            {
                sum += i2[i];
                if (max < i2[i])
                {
                    max = i2[i];



                }
                if (mix > i2[i])
                {
                    mix = i2[i];

                }                              
            }
            return sum;
        }
作者: 徐赵华    时间: 2012-10-11 02:13
  static int  compute( int [] i2, out int mix, out int max)
这里声明是返回的一个int型.   而你的方法体里没有返回int值.
作者: 郭会茹    时间: 2012-10-11 09:47
楼上说的对,没有返回值。返回一个sum就可以了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2