[C语言]请问这个程序输出过程是什么样子的?

void print (int w)

{ int i;

if(w!=0)

{  print (w-1);

   for(i=1;i<=w;i++) 

      printf(“%3d”,w);

   printf (“\n”);

 }

}

递归的体现,相当于间接的循环了w次if语句。经过w次之后,w=0,退出if同时也不再进行递归。

输出w次w,再输出一个换行符
for后边没有{},所以只循环执行printf(“%3d”,w);

这是你想要的答案,你写的代码我复制过去后发现,有中文的双引号以及在函数名和括号中间有空格,这都是不对的。
这是一个递归函数。

#include <stdio.h>
#include <stdlib.h>
void print(int w)
{
    if(w!=0)
    {
        print (w-1);
        for(int i=1;i<=w;i++)
            printf("%3d",w);
        printf("\n");
    }
 }
int main()
{
    int i=22;
    print(i);
    return 0;
}


img