为什么这个printf到第二行后面就不显示了?

 

报错了,第三行printf  20 - x 和 name 交换下位置即可。

printf("您的姓名为:\" %-*s \" \n", 20 - x, name);

 

#include <stdio.h>
#include <string.h>
int main(void)//4.8,,第二题
{
    char name[20];
    int x = 0;

         printf("请输入姓名\n");
    scanf_s
        ("%s", name,20);
    x = strlen(name);

         printf("您的姓名为:\"%s\" \n", name);
         printf("您的姓名为:\"%*s\"\n", 20-x,name);

         printf("您的姓名为:\" %-*s \" \n", name, 20 - x);
         printf("您的姓名为:\" %*s \" \n" , x + 3,name);
   getchar();
   return 0;
}

#include <stdio.h>
#include <string.h>
int main(void)//4.8,第二题  (第二种解法,自己)
{
    char name[20];
         printf("请输入姓名\n");
    scanf_s
        ("%s", name,20);

         printf("您的姓名为:\"%s\" \n", name);
         printf("您的姓名为:\"%20s\"\n",name);
//后两行不显示
         printf("您的姓名为:\" %-20s \" \n",name);
         printf("您的姓名为:\"   %s\" \n", name);
   getchar();
   getchar();
   return 0;
}