给你一个数为61,建立一个8*8的正方形,随后用*绕外围由外到里顺时针进行填充,61个*后则填充结束。即8*8的中间有3个空格。请教高手指点,谢谢

解决方案 »

  1.   

    int num=1;
    for(int i=0;i<8;i++)
    {
    for(int j=0;j<8;j++)
    {
    输出("*");
    if(num>61)
    {
    跳出
    }
    num++;
    }
    }
      

  2.   

    简单点就是先声明一个二维数组
     int x=8;
    int y=8;
     string SrcArray[y][x];//源数组
       for(int i=0; i<y; i++)
       {
          for(int j=0; j<x; j++)
          {
              DestArray[i][j] = "*";
          }
       }
    SrcArray[4][5]="";
    SrcArray[5][4]="";SrcArray[5][5]="";
    然后再循环显示出来SrcArray不就行了!
      

  3.   

    晕   我也写错了  SrcArray[4][5]="";
    SrcArray[5][4]="";SrcArray[5][5]="";你把这改改!
      

  4.   

    给你一个随机数。然后组成一个N*N的正方形,我认为这个数的开根号+1就是这个N。随后就是把*一圈一圈绕进去。直到*数为随机数,之后都是空格
      

  5.   

    我现在想到的就是不管他随机数是几。。先把正方形N*N弄出来全填满。。然后N*N-随机数得到一个数然后再挖空。。但是具体怎么实现我还在想。。
      

  6.   

    int N=8;
    int x=N;
    int y=N;
    int num=60;//随即数
     string SrcArray[y][x];//源数组
      for(int i=0; i<y; i++)
      {
      for(int j=0; j<x; j++)
      {
      DestArray[i][j] = "*";
      }
      }
    int number=N*N-num;
    int num1=number/2+number%2;
    int num2=N/2+N%2;
    for(int n=0;n<num1;n++)
    {
    DestArray[num2-n][num2-n]="";
    for(int m=0;m<num1-1;m++)
    {
    DestArray[num2-n-1][num2-n]="";
    DestArray[num2-n][num2-n-1]="";
    }
    }
      

  7.   

    http://tieba.baidu.com/f?kz=671735553看看这个!