这个C程序菱形输出无法通过编译运行,咋回事呢?请大家指点下

这个C程序菱形输出无法通过编译运行,怎么回事呢?请大家指点下
int main(int argc, const char *argv[]) {  
  draws(4);  
  return (0);  
  }  
   
  void draws(int row)
  {
  int endN,endS,n,m,i;
  for(i =1;i< row*2; i++ )
  {
  if(i<= row){
  endN = row-i;//该行的空格数目
  endS = (i-1)*2 +1; //该行的星数目
  }
  else
  {
  endN = i-row;
  endS = (row-(i-row)-1)*2+1;
  }
 
  //输出空符号
  for(n=0; n< endN; n++)
  {
  printf("");
  }
 
  //输出星符号
  for(m=1 ; m <= endS; m++)
  {
  printf("*");
  }
 
  //输出换行
  printf("\n"); 
  }
 
  }

------解决方案--------------------
C/C++ code

#include <stdio.h>
#include <stdlib.h>
void draws(int);
int main(int argc, const char *argv[]) {   
  draws(4);   
  
  system("pause");
  return (0);   

  }   
    
  void draws(int row)
  { 
      int endN,endS,n,m,i;
      for(i =1;i< row*2; i++ )
      {
  if(i<= row){
  endN = row-i;//该行的空格数目
  endS = (i-1)*2 +1; //该行的星数目 
  }
  else
  {
  endN = i-row;
  endS = (row-(i-row)-1)*2+1; 
  }
  
  //输出空符号
  for(n=0; n< endN; n++)
  {
  printf(" ");
  }
  
  //输出星符号
  for(m=1 ; m <= endS; m++)
  {
  printf("*"); 
  }
  
  //输出换行
  printf("\n");  
  }
  
  }