请问printf这么写为什么错了

img


#include <stdio.h>

int main()
{
    printf("* * * *\n 
             * * *\n  
              * *\n   
               *\n") ;
    return 0;
} 

请问printf这么写为什么错了

img

修改如下,见注释,供参考:

#include <stdio.h>
int main()
{
    printf("* * * *\n"  // 修改 分行写,每行加双引号
           " * * *\n"   // 修改
           "  * *\n"   // 
           "   *\n");  //
    return 0;
}

多写几个printf
而且你第9行右括号是中文括号
这样写也可以

#include <stdio.h>

int main()
{
    printf("* * * *\n"
        " * * *\n"
        "  * *\n"
        "   *\n");
    return 0;
}

或者

#include <stdio.h>  

int main()
{
    printf("* * * *\n");
    printf (" * * *\n");
    printf ("  * *\n");
    printf ("   *\n");
    return 0;
}

你试试四个prinf输出
方法一:

#include <stdio.h>
int main()
{
    printf("* * * *\n"); 
    printf(" * * *\n"); 
    printf("  * *\n"); 
    printf("   *\n"); 
    return 0;
} 

img

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7684826
  • 这篇博客也不错, 你可以看下自己实现printf函数
  • 你还可以看下c语言参考手册中的 c语言-printf()
  • 除此之外, 这篇博客: printf 输出 格式修饰符中的 printf 格式修饰符 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    
    int main(){
    	float a = 123.4567890;
    	int b = 12;
    	printf("123456789");
    	cout<<endl;
    	printf("%f",a);  //默认输出6位数
    	cout<<endl;
    	printf("%5d",b);  //规定域宽 
    	cout<<endl;
    	printf("%.2f",a);  //输出两位小数 
    	cout<<endl;   
    	printf("%7.2f",a);  //规定域宽 (小数点也占一个字符位置) 
    	cout<<endl;
    	return 0;
    } 
    

    运行结果
    在这里插入图片描述

  • 您还可以看一下 钟洪发老师的鸿蒙设备开发之C知识点全面梳理课程中的 printf函数小节, 巩固相关知识点