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();
}
i和j都等于0的话符合if里面i==j的条件会打印出一个O,
然后j经过7次循环最后值为6,此时i=0,j=6不符合i+j==8,输出"."
所以第一行只会有一个O
第二个外循环开始时,i=1,j=0第一个位置再输出"."
问题就出来了
你既然是从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();
}
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();
}
}
}
}
楼主可以参考一下我的,希望对你有帮助
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();
}
谢谢热心解答!