在C中在新行中打印相同的星号图案n次

时间:2018-10-28 12:41:15

标签: c

我有此代码:

#include <stdio.h>

int main()
{
    int n, i, c;

    printf("Size");
    scanf("%d", &n);

    for (i = 1; i <= (n + 1); i++)
    {
        printf("*");
        printf(" ");
    }
    printf("\n");
    for (int a = 1; a <= (((n + 1) * 2)-1); a++)
    {
        printf("*");
    }
    printf("\n");
}

我想做的是在空格的第一行之后。我想在从(((n + 1) * 2) - 1)给定n的新行中打印同一行if n次。例如,以便更好地了解

对于n = 4:

* * * * *
********* 1st
********* 2nd
********* 3rd
********* 4th

如您所见,它将进行计算并用空格打印该行,在接下来的行中它将再次进行计算,但是它将打印n次无空格的行。我不知道如何每次都在新行中打印它们。

2 个答案:

答案 0 :(得分:1)

缺少循环:

#include <stdio.h>

int main()
{
    int n, i, c;

    printf("Size");
    scanf("%d", &n);

    for (i = 1; i <= (n + 1); i++)
    {
        printf("*");
        printf(" ");
    }
    printf("\n");

    size_t width = (((n + 1) * 2)-1);
    for (int j = 0; j < n; j++) { /* loop for lines */
        for (int a = 1; a <= width; a++) /* loop * in lines */
        {
            printf("*");
        }
        printf("\n");
    }
}

答案 1 :(得分:0)

添加另一个for循环

for(j= 0; j< n;++j)/*do this inner for loop and scope code n times*/
{
  for ( a = 1; a <= (((n + 1) * 2)-1); a++)
  {
    printf("*");
  }
  printf("\n");
}