A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 苟于伟 中级黑马   /  2013-3-30 21:00  /  11401 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 苟于伟 于 2013-3-31 14:48 编辑

比如用户A输入3,用户B输入8,然后把它放到数组中

例如
  1. int a=3;
  2. int b=8;

  3. //然后呈现
  4. int[] number={3,8};
复制代码

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

11 个回复

倒序浏览
可以用下表访问数组,当然也可以赋值咯
回复 使用道具 举报
本帖最后由 张振 于 2013-3-30 21:44 编辑

两种方式 用int 数组和ArrayList
第一种方法
  static void Main(string[] args)
        {
            Console.WriteLine("输入第一个数字");
            int First = int.Parse(Console.ReadLine());
            Console.WriteLine("输入第二个数字");
            int Second = int.Parse(Console.ReadLine());
            int[] arr = new int[2];
            arr[0] = First;
            arr[1] = Second;
            foreach (int number in arr)//遍历数组元素
                Console.WriteLine(number);
            Console.ReadKey();
第二种方法 不过用ArrayList前 还需要调用 System.Collections命名空间。

        static void Main(string[] args)
        {
            Console.WriteLine("输入第一个数字");
            int First = int.Parse(Console.ReadLine());
            Console.WriteLine("输入第二个数字");
            int Second = int.Parse(Console.ReadLine());
            ArrayList List = new ArrayList();
            List.Add(First);
            List.Add(Second);
            foreach (int number in List)
                Console.WriteLine(number);
            Console.ReadKey();


评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
使用数组下标得到用户输入的值
回复 使用道具 举报
张振 发表于 2013-3-30 21:42
两种方式 用int 数组和ArrayList
第一种方法
  static void Main(string[] args)

这个方法有局限性,若吧数组定义为List<>不是会更好吗?动态的增长。

点评

·你是指不用int 数组 ?嗯 其实用ArrayList是最方便的  发表于 2013-3-30 22:54
回复 使用道具 举报
对于没有指定数组长度的输入,我们一般用集合来存取。在没有学习集合的情况下,可以先用一个string类型的变量来存放所有用户的输入,然后变成数组
Console.WriteLine("请输入数字");
string  str=Console.ReadLine();
Console.WriteLine("请输入数字");
str+=","+Console.ReadLine();
//....n个人输入
//然后分割字符串,如果想得到数字类型的数组(输入一定要全部是数字,而且转化的时候需要进行判断)
string[] strs=str.Split(',');
//得到string数组以后,可以根据你想要的结果进行相应的操作

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
数组初始化的时候必须给定长度,因此数组是不能动态添加数据的(水平有限,不知道这样说对不),但是可以使用ArrayList,或者使用键值集合Dictionary<>,代码如下:
        static void Main(string[] args)
        {
            Dictionary<int, int> dict = new Dictionary<int, int>();
            for (int j = 0; j < 5; j++)
            {
                Console.Write("请输入数字:");
                int num = Convert.ToInt32(Console.ReadLine());
                dict.Add(j, num);
            }
            foreach (KeyValuePair<int, int> item in dict)
            {
                Console.Write(item.Value);
            }
            Console.ReadKey();
        }

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
  1.   int a = Convert.ToInt32(textBox1.Text);//textBox1输入a
  2.             int b = Convert.ToInt32(textBox2.Text);//textBox2输入b
  3.             List<int> nums = new List<int>();//nums就是最后合成的数组
  4.             foreach (Control c in this.Controls)
  5.             {
  6.                 if (c is TextBox)
  7.                 {
  8.                     nums.Add(Convert.ToInt32(c.Text));
  9.                 }
  10.             }
复制代码
代码不足之处:用户输入数字个数受到限制了。
这个不足谁能否给解决下????
或者在一个文本框中输入任意个整数,用逗号隔开,利用曾玉锋 提到的方法把数字一一取出,再依次加入动态数组。
   
回复 使用道具 举报
经过试验论那个方法可以:
  1. string str = textBox1.Text;//用于输入数字的文本框(必须用逗号隔开各个数组)
  2.             string[] strs = str.Split(',');
  3.             int[] numbers = new int[strs.Length];//numbers用来存放最终数组
  4.             for (int i = 0; i < strs.Length; i++)
  5.             {
  6.                 numbers[i] = Convert.ToInt32(strs[i]);
  7.             }
复制代码
回复 使用道具 举报
可以借助ArrayList实现,如以下代码:

            //使用ArrayList来缓存输入的内容(这里用直接赋值演示)
            ArrayList al = new ArrayList();
            //输入3,将3添加到ArrayList中
            int a = 3;
            al.Add(a);
            //输入8,将8添加到ArrayList中
            int b = 8;
            al.Add(b);
            //调用ArrayList的ToArray方法,将之转成数组
            int[] number = (int[])al.ToArray(typeof(Int32));
回复 使用道具 举报
利用FOR循环把值赋值给数组  

        int renshu, ;
            Console.WriteLine("请输入班级人数");
            renshu = Convert.ToInt32(Console.ReadLine());
            int[] chengji = new int[renshu];     \\定义一个chengji 数组
            for (int i = 0; i < chengji.Length; i++)
            {
                Console.WriteLine("请输入第{0}个学生的成绩",i+1);
                chengji[i] = Convert.ToInt32(Console.ReadLine());   //利用循环语句对chengji数组赋值
回复 使用道具 举报
int[] num=new int[2];
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马