黑马程序员技术交流社区

标题: 新手求指点迷津 [打印本页]

作者: 流离    时间: 2013-10-13 16:38
标题: 新手求指点迷津
本帖最后由 流离 于 2013-10-13 18:39 编辑

static void Main(string[] args)
        {
           
            string number = "2 7 8 3 22 9";
            string ou =""; string ji= "";//定义两个字符串用来接收奇数和偶数
            char   []chars  = number.ToArray();//将字符串转化为char数组
            for (int i = 0; i < number.Length; i++)
            {
                if (chars % 2 != 0)
                {
                    ji= ji  +chars ;//将奇数用+连接起来“ ”为了保持距离
                }
                if (chars % 2 == 0)
                {ou=ou  +chars;//将偶数用+连接起来
                    
                }

            }
               
                Console .WriteLine("{0}  {1}",ji ,ou);
               
            Console.ReadKey();
显示的结果却是这样
http://user.qzone.qq.com/1113842838/infocenter#!app=4&via=QZ.HashRefresh


当我把代码中ji=ji+"   "+char;如图
http://user.qzone.qq.com/1113842838/infocenter#!app=4&via=QZ.HashRefresh
才显得对齐了,有点不符合我逻辑,望高手指点

这是我打的代码

作者: lgh521911    时间: 2013-10-13 17:38
当程序运行到你的流控语句也就是判断是否为计数或偶数后,遍会按照你的要求向屏幕输出,循环中遍历每一个元素进行比较,然后再向屏幕输出每一次比较后的结果。而你编辑的代码ji=ji+" "+char[i];等于ji+=char[i]+" ";用空格开分隔输出数据。所以在判断符合条件后归类输出,并且在输出后加空格区分,不知道你的是视频刚刚看到哪里,后面的视频会给你解释的,或者多看两遍就明白了。共同学习哈
作者: lgh521911    时间: 2013-10-13 17:47
我又回来啦,送上我刚刚做的热乎乎的代码,仅供参考哦
  1. int[] number={2,7,8,3,22,9};
  2.             string a="";
  3.             string b = "";
  4.             for (int i = 0; i < number.Length; i++)
  5.             {
  6.                 if (number[i] % 2 != 0)
  7.                 {
  8.                     a += number[i] + " ";
  9.                 }
  10.                 else
  11.                 {
  12.                     b += number[i] + " ";
  13.                 }
  14.             }
  15.             Console.WriteLine("奇数为:{0},偶数为:{1}", a, b);
复制代码

作者: 夏闯富    时间: 2013-10-13 17:48
你这种方法只能区分个位数的奇偶性,整数22被ToArray分成了两个'2'.
修改后的代码:
  1. static void Main(string[] args)
  2.         {

  3.             string number = "2 7 8 3 4 9";
  4.             string ou = ""; string ji = "";//定义两个字符串用来接收奇数和偶数
  5.             char[] chars = number.ToArray();//将字符串转化为char数组
  6.             for (int i = 0; i < number.Length; i++)
  7.             {
  8.                 if (chars[i] != ' ')//将' '(空字符)过滤掉
  9.                 {
  10.                   
  11.                     if (chars[i] % 2 != 0)
  12.                     {
  13.                         ji = ji + " " + chars[i];//将奇数用+连接起来“ ”为了保持距
  14.                     }
  15.                     if (chars[i] % 2 == 0)
  16.                     {
  17.                         ou = ou +" "+ chars[i];//将偶数用+连接起来

  18.                     }
  19.                }

  20.             }

  21.             Console.WriteLine("奇数{0}\n偶数{1}", ji, ou);

  22.             Console.ReadKey();
  23.         }
复制代码

运行结果.png (18.88 KB, 下载次数: 60)

运行结果.png

作者: 夏闯富    时间: 2013-10-13 17:56
本帖最后由 夏闯富 于 2013-10-13 18:46 编辑

此种修改  能区分 所有的奇偶数static void Main(string[] args)
        {

            string number = "2 7 8 3 22 9 45 56";
            string ou = ""; string ji = "";//定义两个字符串用来接收奇数和偶数
            string[] chars = number.Split(' ');
            for (int i = 0; i < chars.Length; i++)
            {

                int Int = Convert.ToInt32(chars);//此处定义一个Int(这个与int关键字不同,这个Int就是一个普通变量,也可以把它换成任意字符)变量是把string型转换成整型
                if (Int % 2 != 0)
                    {
                        ji = ji + " " + Int;//将奇数用+连接起来“ ”为了保持距
                    }
                if (Int % 2 == 0)
                    {
                        ou = ou + " " + Int;//将偶数用+连接起来

                    }
               

            }

            Console.WriteLine("奇数{0}\n偶数{1}", ji, ou);

            Console.ReadKey();
        }
  1. <div class="blockcode"><blockquote>static void Main(string[] args)
  2.         {

  3.             string number = "2 7 8 3 22 9 45 56";
  4.             string ou = ""; string ji = "";//定义两个字符串用来接收奇数和偶数
  5.             string[] chars = number.Split(' ');
  6.             for (int i = 0; i < chars.Length; i++)
  7.             {

  8.                 int Int = Convert.ToInt32(chars[i]);//此处定义一个Int(这个与int关键字不同,这个Int就是一个普通变量,也可以把它换成任意字符)变量是把string型转换成整型
  9.                 if (Int % 2 != 0)
  10.                     {
  11.                         ji = ji + " " + Int;//将奇数用+连接起来“ ”为了保持距
  12.                     }
  13.                 if (Int % 2 == 0)
  14.                     {
  15.                         ou = ou + " " + Int;//将偶数用+连接起来

  16.                     }
  17.                

  18.             }

  19.             Console.WriteLine("奇数{0}\n偶数{1}", ji, ou);

  20.             Console.ReadKey();
  21.         }
复制代码

运行截图2.png (19.34 KB, 下载次数: 59)

运行截图2.png

作者: 流离    时间: 2013-10-13 18:09
夏闯富 发表于 2013-10-13 17:56
此种修改  能区分 所有的奇偶数

代码看的有点不太懂,可能我是小白吧  ou = ou + " " + Int 。+int是什么意思?
但是你的输出结果很明显就是错的, 343.和6.到哪来的!不会截错图了吧
作者: 流离    时间: 2013-10-13 18:14
夏闯富 发表于 2013-10-13 17:56
此种修改  能区分 所有的奇偶数

看到了,是变量,不好意思!第一次看到这样设置变量!不好意思啊!但是截图明显不对!
作者: 夏闯富    时间: 2013-10-13 18:21
本帖最后由 夏闯富 于 2013-10-13 18:23 编辑
流离 发表于 2013-10-13 18:14
看到了,是变量,不好意思!第一次看到这样设置变量!不好意思啊!但是截图明显不对! ...

截图我后续对程序number修改后的运行结果,截错了,我在自己电脑上面number多加了几个,是为了想证明3位数的也可以分离出来。已经提交的代码中的number却没做修改。现在截图修改回来了,你再看看。
作者: 流离    时间: 2013-10-13 18:36
夏闯富 发表于 2013-10-13 18:21
截图我后续对程序number修改后的运行结果,截错了,我在自己电脑上面number多加了几个,是为了想证明3位数 ...

嗯,刚刚我也搜到了这个  s.split() 用法!谢谢!要不是你提醒我还不知道错在哪呢!
作者: 夏闯富    时间: 2013-10-13 18:44
流离 发表于 2013-10-13 18:36
嗯,刚刚我也搜到了这个  s.split() 用法!谢谢!要不是你提醒我还不知道错在哪呢! ...

呵呵,加油哦!{:soso_e130:}




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