黑马程序员技术交流社区

标题: 问个编程题 [打印本页]

作者: 张荣耀    时间: 2013-8-7 08:15
标题: 问个编程题
本帖最后由 张荣耀 于 2013-8-7 17:08 编辑

//编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List集合进行排序,然后遍历集合输出
            
下边是我的代码,请指正:
  1.   int[] array = new int[10];
  2.    Random rand = new Random();
  3.    List<int> list = new List<int>();   

  4.      for (int i = 0; i <= 5; i++)
  5.              {
  6.                  list[i] = rand.Next(1, 10);
  7.               
  8.              }
  9.             array = list.ToArray();
  10.             Array.Sort(array);
  11.             foreach (int i in array)
  12.             {
  13.                 Console.WriteLine(i);
  14.             }

  15.             Console.ReadKey();
复制代码

作者: sym544135698    时间: 2013-8-7 08:26
本帖最后由 sym544135698 于 2013-8-7 08:27 编辑

  1. <P>  int[] array = new int[10];
  2.    Random rand = new Random();
  3.    List<int> list = new List<int>();   

  4.      for (int i = 0; i < 5; i++)
  5.              {
  6.                  list[i] = rand.Next(1, 11);
  7.               
  8.              }
  9.             array = list.ToArray();
  10.             Array.Sort(array);
  11.             foreach (int i in array)
  12.             {
  13.                 Console.WriteLine(i);
  14.             }

  15.             Console.ReadKey();</P>
  16. <P> </P>
  17. <P>没有拿工具,集合还不是很明白,但你的for循环有点问题,硬要说的话算是找茬吧。呵呵</P>
复制代码

作者: 小天    时间: 2013-8-7 09:11
本帖最后由 小天 于 2013-8-7 14:51 编辑

             int[] array = new int[5];//声明了一个整型数组array,数组长度是5
            Random rand = new Random();
            for (int i = 0; i < 5; i++)
            {
                array = rand.Next(1, 11);//生成1到10的一个随机数,插入到数组array中
            }
            List<int> list = new List<int>(array);// 以一个集合作为参数创建List
            list.Sort();//给list中的元素排序,默认是元素第一个字母按升序
            foreach (int i in list)//遍历list中的元素
            {
                Console.WriteLine(i);
            }
            Console.ReadKey();

或者
            int[] array = new int[5];
            Random rand = new Random();
            List<int> list = new List<int>();
            for (int i = 1; i <= 5; i++)
            {
                list.Add(rand.Next(1, 11));//向list中添加一个元素
            }
            array = list.ToArray();
            Array.Sort(array);//对数组中的元素进行排序
            foreach (int i in array)//遍历数组array
            {
                Console.WriteLine(i);
            }
            Console.ReadKey();

作者: 啊拉拉的坑啊    时间: 2013-8-7 10:54
  1. int[] array = new int[10];

  2.             Random rand = new Random();

  3.             List<int> list = new List<int>();

  4.             for (int i = 0; i < 5; i++)
  5.             {

  6.                     //list[i] = rand.Next(1, 10);
  7.                 list.Add ( rand.Next(1, 11));

  8.             }

  9.             array = list.ToArray();

  10.             Array.Sort(array);

  11.             foreach (int i in array)
  12.             {

  13.                 Console.WriteLine(i);

  14.             }


  15.             Console.ReadKey();
  16.         }
  17.     }
  18. }
复制代码

作者: 高文咪    时间: 2013-8-7 10:57
下面是实现代码:
  1. static void Main(string[] args)
  2. {
  3. Random rd = new Random();//定义一个随机变量;
  4. List<int> list = new List<int>();//定义一个数组去存放生成的随机数;
  5. int temp = 0;//定义一个临时变量去存放生成的随机数;
  6. for (int i = 0; i < 5; i++)
  7. {
  8. temp = rd.Next(1, 10);//把生成的随机数赋值给定义的temp变量;
  9. list.Add(temp);//把定义的变量添加到list数组中
  10. }
  11. //循环list数组,取出随机数,并输出;
  12. foreach (int i in list)
  13. {
  14. Console.WriteLine(i);
  15. }
  16. Console.ReadLine();
  17. }
复制代码

作者: 啊拉拉的坑啊    时间: 2013-8-7 10:57
list[i] = rand.Next(1, 10);
作者: 啊拉拉的坑啊    时间: 2013-8-7 11:00
list 不是数组,。没法取数据 。。   
{:soso_e150:} 按错键 ,没写完 都发送了 。 不知道能不能帮到你。
作者: 高文咪    时间: 2013-8-7 11:08
你代码中定义的是个空数组,里面是没值的;在for循环中写list[i] = rand.Next(1, 10)这样肯定会报索引超出界限的错误;你可以写成list.add(rand.Next(1, 10));
还有你是要输出5个随机数,索引下标是从0开始的,你的for循环i<5就可以了,要不你输出是6个随机数;
希望可以帮到你~~~
作者: zhangcheng5468    时间: 2013-8-7 12:21
本帖最后由 zhangcheng5468 于 2013-8-7 12:23 编辑

泛型集合可以直接使用Linq的扩展方法排序没有必要转成数组
  1. Random rdm = new Random();
  2.             List<int> list = new List<int>();
  3.             for (int i = 0; i < 5; i++)
  4.             {
  5.                 list.Add(rdm.Next(1, 10));
  6.             }
  7.             foreach (int item in list.OrderBy(num=>num))
  8.             {
  9.                 Console.WriteLine(item);
  10.             }
复制代码

作者: 张荣耀    时间: 2013-8-7 12:25
谢谢大家的指点,解决了
作者: 张荣耀    时间: 2013-8-7 12:27
本帖最后由 张荣耀 于 2013-8-7 12:30 编辑
小天 发表于 2013-8-7 09:11
int[] array = new int[5];//声明了一个整型数组array,数组长度是5
            Random rand ...

你的第一个方法中for循环里array后边少了array。也多谢你的提醒
作者: 小天    时间: 2013-8-7 14:58
张荣耀 发表于 2013-8-7 12:27
你的第一个方法中for循环里array后边少了array。也多谢你的提醒

是红框的那个地方吗?字体变成斜体了,不能编辑了

ss.jpg (6.67 KB, 下载次数: 43)

ss.jpg

作者: 张荣耀    时间: 2013-8-7 16:56
小天 发表于 2013-8-7 14:58
是红框的那个地方吗?字体变成斜体了,不能编辑了

是array
作者: 幸福专卖店    时间: 2014-5-14 14:42
注意了,加油吧,




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