芒果-青柠 2023-11-08 09:15 采纳率: 25%
浏览 57

C语言 打印菱形图案 PTA填空

m 和i是啥,怎么填才能正确打印出来菱形啊?

输出一个正奇数n(1<=n<=9),打印一个高度为n的,由*组成的正菱形图形。

int i, j, m, n; 
scanf("%d", &n); 
m =       ;
for(                   )   (3 分)
{   
for (j = m + 1 - i; j > 0; j--)
           { printf (" ");   }      
 for (j = 1; j <= 2 * i - 1; j++)
          {  printf ("*");   }      
 printf("\n");
 }                                                         
for  (              )(3 分)
{  
 for (j = m + 1 - i; j > 0; j--)
      {  printf (" ");   }     
 for (j = 1; j <= 2 * i - 1; j++)
      {  printf ("*");   }      
 printf ("\n"); 
}

  • 写回答

2条回答 默认 最新

  • 木头人123。 2023-11-08 09:20
    关注

    你需要把代码填写成如下形式:

    int i, j, m, n; 
    scanf("%d", &n); 
    m = n / 2 + 1;
    for(i = 1; i <= m; i++)   
    {   
        for (j = m + 1 - i; j > 0; j--)
        { 
            printf (" ");   
        }      
        for (j = 1; j <= 2 * i - 1; j++)
        {  
            printf ("*");   
        }      
        printf("\n");
    }                                                         
    for(i = m - 1; i >= 1; i--)
    {  
        for (j = m + 1 - i; j > 0; j--)
        {  
            printf (" ");   
        }     
        for (j = 1; j <= 2 * i - 1; j++)
        {  
            printf ("*");   
        }      
        printf ("\n"); 
    }
    

    在此代码中,变量m表示菱形的中间行数,i表示当前行数,j用于循环打印空格和星号。第一个for循环用于打印菱形的上半部分,第二个for循环用于打印菱形的下半部分。每一行先打印空格,然后打印星号,最后打印换行符。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月8日