方形与C中的对角线,星号图案

时间:2014-12-06 18:33:57

标签: c

我必须编写一个程序,打印一个由带有一个对角线的星号组成的正方形,旁边是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");
  }
}

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

2 个答案:

答案 0 :(得分:2)

您要分配而不是比较。

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

答案 1 :(得分:0)

试试此代码。

#include<stdio.h>
void main()
{
       int i,j,n;

       printf("Enter the number of lines to be printed:");
       scanf("%d",&n);
       for(i=0;i<n;i++)
             printf("*");
       printf("\n");
       for(i=0;i<n-2;i++)
       {
              printf("*");
              for(j=0;j<n-2;j++)
              {
                    if(j==(n-3-i))
                    {
                        printf("*");
                    }
                    else{
                     printf(" ");
                    }
              }
              printf("*\n");
       }
        for(i=0;i<n;i++)
              printf("*");
        printf("\n");
}