为了账号安全,请及时绑定邮箱和手机立即绑定

请问我的为什么不对呢?到底哪里逻辑有问题?

for(int i=0;i<7;i++)

{

    for(int j=0;j<7;j++)

    {

        if(i==j || i+j==8)

        {

            Console.Write("O");

        }

        else

        {

            Console.Write(".");

        }

    }

    Console.WriteLine();

}

正在回答

5 回答

i和j都等于0的话符合if里面i==j的条件会打印出一个O,

然后j经过7次循环最后值为6,此时i=0,j=6不符合i+j==8,输出"."

所以第一行只会有一个O

第二个外循环开始时,i=1,j=0第一个位置再输出"."

问题就出来了

http://img1.sycdn.imooc.com//5f02ddb20001344802330160.jpg

2 回复 有任何疑惑可以回复我~

你既然是从0开始,那么相加应该==7,而不是8;

            for (int x = 1; x <= 7; x++)

            {

                for (int y=1;y<=7;y++)

                {

                    if (x==y||x+y==8)

                        Console .Write("O");

                    else 

                        Console .Write(".");

                }

                Console.WriteLine();

            }


0 回复 有任何疑惑可以回复我~

using System;

using System.Collections.Generic;

using System.Text;


namespace Test

{

    class Program

    {

        static void Main(string[] args)

        {

            //请完善代码

            for(int x=1;x<=7;x++){

                for(int y=1;y<=7;y++)

                {

                    if(x+y==8 || x-y==0)

                    {

                        Console.Write("o");

                    }

                    else

                    {

                        Console.Write(".");

                    }

                }

                Console.WriteLine();

            }

        }

    }

}

楼主可以参考一下我的,希望对你有帮助

0 回复 有任何疑惑可以回复我~

 for(int x=1;x<8;x++)
            {
               for(int y=1;y<8;y++)
               {
                  if(y==x||y==(8-x))
                  Console.Write('0');
                  else
                 Console.Write('.');
               }
               Console.WriteLine();
              
              
            }

0 回复 有任何疑惑可以回复我~

谢谢热心解答!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问我的为什么不对呢?到底哪里逻辑有问题?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信