我有此代码:
#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次无空格的行。我不知道如何每次都在新行中打印它们。
答案 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");
}