我必须写一个程序,打印一个由一个对角线的星号组成的正方形,边上有n个星号。如果n为5,则模式为

*****
*  **
* * *
**  *
*****

我的错误代码是:
#include<stdio.h>
main(){
  int n,row,i,star;
  scanf("%d",&n);
  for(row=1;row<=n;row++){
    if(row==1||row==n){
      for(i=1;i<=n;i++){
    printf("*");
      }
    }
    else { for(star=1;star<=n;star++){
        if((star==1)||(star=n-row+1)||(star==n))
          printf("*");
        else printf(" ");
       }
    }

    printf("\n");
  }
}

它不做它的工作,而是打印无限的星号。

最佳答案

你在分配而不是比较。

if((star==1)||(star=n-row+1)||(star==n))
                   ^

关于c - 在C中带有对角星号图案的正方形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27335021/

10-11 16:11