c中的星星钻石

c中的星星钻石,c,C,我试着画这颗钻石,这样在中间一排之后,钻石的其余部分向右移动3个空格,就像你通过一杯水看它一样。你能不能修改一下下面的代码来合并这个变化 输出应该类似于: * *** ***** ******* ***** *** * (但中间最多有15颗星)。 谢谢 define TOTAL_行15 int main(){ int行,列,numstars=1; 半整数,比率=1; 对于(row=1;row,当切换到另一半时,设置一个标志

我试着画这颗钻石,这样在中间一排之后,钻石的其余部分向右移动3个空格,就像你通过一杯水看它一样。你能不能修改一下下面的代码来合并这个变化

输出应该类似于:

     *
    ***
   *****
  *******
      *****
       ***
        * 
(但中间最多有15颗星)。
谢谢

define TOTAL_行15
int main(){
int行,列,numstars=1;
半整数,比率=1;
对于(row=1;row,当切换到另一半时,设置一个标志并在其后打印3个空格

int flag = 0;

    ....


  if (numstars==(half+1)) {
        rate = -rate;
        flag = 1;
    }

    numstars+=rate;

    printf("\n");
    if (flag) printf("   ");

}

只需检查行是否大于一半,然后添加这3个空格

if(row>half+1)
    printf("    ");

请参阅。

在第一个内部,如果
-3
变量超过中心,则可以使用
-3
启动该变量:

for (col=(row <= half+1 ? 0 : -3); col<half+1-numstars; col++)
    printf(" ");

for(col=(row代码现在做什么?你看到错误了吗?万岁,年份循环到星型:-)你能不能修改这个代码,使它生成的菱形向右移动3个空格?参见上面的示例输出。