黑马程序员技术交流社区

标题: 代码这样写有什么问题吗?为什么最小成绩显示不出来呢? [打印本页]

作者: qly2046    时间: 2013-12-16 19:47
标题: 代码这样写有什么问题吗?为什么最小成绩显示不出来呢?
本帖最后由 qly2046 于 2013-12-20 15:29 编辑

//计算10个人的成绩和,平均成绩,最大成绩和最小成绩?并显示每个人的成绩?
            int[] score = new int[10];
            int max = 0;
            int min = 0;
            int i = 0;
            int sum = 0;
            //给每个元素赋值
            for (i = 0; i < score.Length; i++)
            {
                Console.WriteLine("请输入第{0}个人的成绩!", i + 1);
                score = Convert.ToInt32(Console.ReadLine());
            }

            //清屏
            Console.Clear();

            //求最大值
            for (i = 0; i < score.Length; i++)
            {
                if (score > max)
                {
                    max = score;
                }
            }
            Console.WriteLine("最大值是:{0}", max);


            //求最小值
            for (i = 0; i < score.Length; i++)
            {
                if (score < min)
                {
                    min = score;
                }
            }
            Console.WriteLine("最小值是:{0}", min);


            //输出平均值
            for (i = 0; i < score.Length; i++)
            {
                sum += score;
            }
            Console.WriteLine("{0}个人的平均成绩是:{1}分!", score.Length, sum / score.Length);

            //输出每一个元素的值
            for (i = 0; i < score.Length; i++)
            {
                Console.WriteLine("第{0}个人的成绩是:{1}分!", i + 1, score);
            }

            Console.ReadKey();
最大值,求和,求平均值已经成功了,就是最小值不成功?求大神指点?谢谢了。

作者: 再起来    时间: 2013-12-17 09:06
你的求最小值 明显错误 min变量是等于0的  score[i]<min  就是说score[i]<0  你输入的score 若都是大于0的  怎么可以求出最小值 若都是小于0或有两个及以上小于0  你这个表达式又是错的 你那个求最大值 其实也是没有考虑周到的  若是输入的值都小于0 你的最最大值还能求出来吗 还有你也没有考虑输入的是字符串转换不了数字的情况
作者: 再起来    时间: 2013-12-17 09:26
  1. class Program
  2.     {
  3.         static int ReadInt()
  4.         {
  5.             do
  6.             {
  7.                 try
  8.                 {
  9.                     int a = Convert.ToInt32(Console.ReadLine());
  10.                     return a;
  11.                 }
  12.                 catch
  13.                 {
  14.                     Console.WriteLine("您输入的字符串格式有误,请重新输入");
  15.                 }
  16.             } while (true);

  17.         }
  18.         static void Main(string[] args)
  19.         {
  20.             int[] num = new int[10];
  21.             //给每个元素赋值
  22.             for (int i = 0; i < num.Length; i++)
  23.             {
  24.                 Console.WriteLine("第{0}个同学成绩为:", i + 1);
  25.                 num[i] = ReadInt();
  26.             }
  27.             //清屏
  28.             Console.Clear();
  29.             //求最大值,最小值
  30.             Array.Sort(num);//调用数组的方法进行排序,此处有for循环求最大值,最小值也可用冒泡排序法
  31.             Console.WriteLine("最大值为{0}:,最小值为{1}", num[num.Length-1],num[0]);
  32.             Console.ReadKey();
  33.         }
  34.     }
复制代码





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