C语言 printf 函数例子


#include<stdio.h>
int main()
{
    int sc = 30;
    int sc1 = 40;
    float f1 = 1.2545;
    float f2 =3 ;
    int num = 0;
    num = sc + sc1;
    printf("两个整型变量计算的结果=%4d\n\n",num);
    num = 0;
    num =(int) f1 + f2;
    printf("单精度和整型变量计算的结果=%d\n\n",num);
    float num1 = 0.0;
    num1 = f1 + f2;
    printf("两数之和=%hf\n\n",num1);
    return 0;    
}


#include<stdio.h>
int main()
{
    float f1 = 1.2545;
    int f2 = 3;
    int num = 0;
    num =(int) f1 - f2;
    printf("单精度和整型变量计算结果=%d\n\n",num);
    return 0;
}


#include<stdio.h>
int main()
{
    int a = 10;
    float b = 2.5;
    float c = 0.0;
    c = a * b;
    printf("使用乘法运算符后的结果=%lf\n\n",c);
    return 0;
}


#include<stdio.h>
int main()
{
    int a = 10;
    float f = 2.65;
    float f1 = 0.0;
    f1 = a/f;
    printf("使用除法计算后的商=%f\n\n",f1);
    return 0;
}



#include<stdio.h>
int main()
{
    int n = 100;
    char c = '@';
    float money = 93.96;
    printf("n=%d     c=%c money=%f\n",n,c,money);
    return 0;
}


#include<stdio.h>
int main()
{
    float money = 93.96;
    printf("n=%d\nc=%c\nmoney=%f\n",100,'@',money);
    return 0;
}


#include<stdio.h>
int main()
{
    int a = 1234;
    printf("a=%ds\n",a);
    return 0;
}


//puts=putstring 输出字符串
//putchar 输出单个字符,用''单引号
#include<stdio.h>
int main()
{
    puts(
        "多段文字的表达方式,可以直接用puts加函数,不分段显示"
        "也可以像现在这样,多几个分号把段落分开");
    puts(
        "其实几种方式都是可以的\n"
        "显示出来的效果都是一样的,只是看代码哪个更直观的问题");
    return 0;
}


#include<stdio.h>
int main()
{
    short a = 10;
    int b = 100;
//sizeof 函数获某个数据类型或变量所占字节数
//sizeof 函数 变量不加括号,名词?加括号
    int short_length = sizeof a;
    int int_length = sizeof b;
    int long_length = sizeof(long);
    int char_length = sizeof(char);
    printf("short=%d,int=%d,long=%d,char=%d\n",short_length,int_length,long_length,char_length);
    return 0;
}


#include<stdio.h>
int main()
{
    short a = 10;
    int b = 100;
    long c = 9437;
    printf("a=%hd,b=%d,c=%ld\n",a,b,c);
    return 0;
}


#include<stdio.h>
int main()
{
    int m = 306587;
    long n = 28166459852;
    printf("m=%hd,n=%hd\n",m,n);
    printf("n=%d\n",n);
    return 0;
//这里就会出现错误的结果,m=-21093,n=4556
//m=-21093,n=4556
//同时也会编译器也会报警
//%hd= 2 Byte, %d = 4 Byte, %ld = 4-8 Byte
}


#include<stdio.h>
int main()
{
    int a = 0b101;
    int b = -0b110010;
    int c = 0B100001;

    printf("a=%d,b=%d,c=%d\n",a,b,c);
    return 0;
//0b,0B是二进制,0是八进制,0x,0X是十六进制
}


#include<stdio.h>
int main()
{
    int a = 015;
    int b = -0101;
    int c = 0177777;

    printf("a=%d,b=%d,c=%d\n",a,b,c);
    return 0;
//0b,0B是二进制,0是八进制,0x,0X是十六进制
}


#include<stdio.h>
int main()
{
    int a = 0x2a;
    int b = -0xa0;
    int c = 0xffff;

    printf("a=%d,b=%d,c=%d\n",a,b,c);
    return 0;
//0b,0B是二进制,0是八进制,0x,0X是十六进制
}


#include<stdio.h>
int main()
{
    short a = 0b1010110;
    int b = 02713;
    long c = 0x1dab83;

    printf("八进制显示 a=%ho,b=%o,c=%lo\n",a,b,c);
    printf("十进制显示 a=%hd,b=%d,c=%ld\n",a,b,c);
    printf("小写的十六进制显示 a=%hx,b=%x,c=%lx\n",a,b,c);
    printf("大写的十六进制显示 a=%hX,b=%X,c=%lX\n",a,b,c);
    return 0;
//%o(八进制),%d(十进制),%x(十六进制小写),%X(十六进制大写)
//二进制无法显示,o可以看成0,所以是八进制,x是十六进制
}


#include<stdio.h>
int main()
{
    short a = 0b1010110;
    int b = 02713;
    long c = 0x1dab83;
    puts("下面显示的是使用%#,可以在前面加标识符,0,0x,0X等");
    printf("八进制显示 a=%#ho,b=%#o,c=%#lo\n",a,b,c);
    printf("十进制显示 a=%hd,b=%d,c=%ld\n",a,b,c);
    printf("小写十六进制显示 a=%#hx,b=%#x,c=%#lx\n",a,b,c);
    printf("大写十六进制显示 a=%#hX,b=%#X,c=%#lX\n",a,b,c);
    return 0;
//前面加#,输出以各自格式加上前缀。
}


#include<stdio.h>
int main()
{
    short a1 = -10;
    short a2 = -0x2dc9;
    int b1 = +10;
    int b2 = +0174;
    int b3 = 22910;
    long c = (-9)+(+12);
    printf("a1=%d\na2=%d\nb1=%d\nb2=%d\nb3=%d\nc=%ld\n",a1,a2,b1,b2,b3,c);
//unsigned 表明数字前面没有符号位,是正的,可以节省字节空间。
//%d 以十进制形式输出有符号数
//%u 以十进制形式输出无符号数
//%o 以八进制形式输出无符号数
//%x 以十六进制形式输出无符号数
}


#include<stdio.h>
int main()
{
    short a = 0100;
    int b = -0x1;
    long c = 720;
    unsigned short m = 0xffff;
    unsigned int n = 0x80000000;
    unsigned long p = 100;
    printf("a=%#ho,b=%#x,c=%ld\n",a,b,c);
    printf("m=%hd,n=%d,p=%ld\n",m,n,p);
    return 0;
//×××××这里输出的b=0xffffffff
//m=-1,n=-2147483648,暂时还不能理解
//关系到数据在内存中存放的规则
}


#include<stdio.h>
int main()
{
    float a = 0.302;  //a=3.020000e-01 
    float b = 128.101; //128.100998
    double c = 123; //123.000000
    float d = 112.64E3; //1.126400E+05
    double e = 0.7623e-2; //0.007623
    float f = 1.23002398; //1.230023
    printf("a=%e \nb=%f \nc=%lf \nd=%lE \ne=%lf \nf=%f\n",a,b,c,d,e,f);
    return 0;
}


#include<stdio.h>
int main()
{
    float a = 0.00001; //1e-05
    float b = 30000000; //3e+07
    float c = 12.84; //12.84
    float d = 1.229338455; //1.22934
    printf("a=%g \nb=%g \nc=%g \nd=%g\n",a,b,c,d);
    return 0;
}


#include<stdio.h>
int main()
{
    long a = 100l;
    int b = 294;
    short c = 32l;
    float d = 52.55f;
    double e = 18.6F;
    float f = 0.02;
    printf("a=%ld \nb=%d \nc=%d \nd=%g \ne=%f \nf=%f\n",a,b,c,d,e,f);
    return 0;
//在数字后面加l代表ld长整数型,后面加f,代表浮点类型
}


#include<stdio.h>
int main()
{
    float f = 251;
    int w = 19.427;
    int x = 92.78;
    int y = 0.52;
    int z = -87.27;
    printf("f = %f, w = %d, x = %d, y = %d, z = %d\n",f,w,x,y,z);
    return 0;
//把整数指定小数会在后面加0,把小数指定整数,会把小数点后删除,不是四舍五入
}


#include<stdio.h>
int main()
{
    char a = '1';
    char b = '$';
    char c = 'X';
    char d = ' ';
    putchar(a); putchar(d); 
    putchar(b); putchar(d);
    putchar(c); putchar('\n');
    printf("%c %c %c \n",a,b,c);
    return 0;
//char只能一个字符,ASCII,用单引号
}


#include<stdio.h>
int main()
{
    char a = 'E';
    char b = 70;
    int c = 71;
    int d = 'H';
    printf("a: %c, %d\n",a,a); 
    printf("b: %c, %d\n",b,b);
    printf("c: %c, %d\n",c,c);
    printf("d: %c, %d\n",d,d);
    return 0;
//%d会把字符转成整数,
}


#include<stdio.h>
int main()
{
    char web_url[] = "https://b.hefang.fun";
    char web_name[] = "yytak‘s blog";
    puts(web_url);
    puts(web_name);
    printf("%s\n%s\n",web_url,web_name);
    return 0;
//putchar是输出字符函数,puts是输出字符串函数
//char函数常量后面加[]与前面加*才能赋字符串
}


#include<stdio.h>
int main()
{
    char a = '\61';
    char b = '\141';
    char c = '\x31';
    char str1 [] = "\x31\x32\x33\61\62\63";
    char str2 [] = "\61\62\63\141\142\143";
    char str3 [] = "The string is:\61\62\63\x61\x62\x63";
    printf("a=%c,b=%c,c=%c\n",a,b,c);
    putchar(a);
    putchar(b);
    putchar(c);
    putchar('\n');
    puts(str1);
    puts(str2);
    puts(str3);
    return 0;
//puts不能输出一个字符,只能用putchar
//putchar函数不会自动换行
//putchar函数一定要用单引号
//转义字符后面只能跟着八或十六进制(/x)
}


#include<stdio.h>
int main()
{
    puts("\x68\164\164\x70://hefang.\x6e\145\x74");
    return 0;
}


#include<stdio.h>
int main()
{
    int a = 12;
    int b = 100;
    float c = 8.9;
    int m = a - b;
    int n = a + 239;
    double p = 12.7 * 34.3;
    printf("m=%d,n=%d,p=%lf\n",m,n,p);
    printf("m*2=%d,6/3=%d,m*n=%d\n",m*2,6/3,m*n);
    return 0;
}


#include<stdio.h>
//C语言的除法,除数与被除数为整数,结果也为整,余数丢掉
//除数或被除数有小数,结果是double类型小数
int main()
{
    int a = 100;
    int b = 12;
    float c = 12.0;
    double p = a / b ;
    double q = a / c ;
    printf ("p=%lf,q=%lf\n",p,q);
    return 0;
}


#include<stdio.h>
int main()
{
    int a, b;
    scanf("%d %d",&a,&b);
    printf("result=%d\n",a/b);
    return 0;
}


//%的左边是正数,余数为正,%左边为负,余数为负
//一个%是格式控制符,%%才是%
#include<stdio.h>
int main()
{
    printf("100%%12=%d \n100%%-12=%d \n-100%%12=%d \n-100%%12-12=%d \n",100%12,100%-12,-100%12,-100%-12);
    return 0;
}


#include<stdio.h>
int main()
{
    int a = 12;
    int b = 10;
    printf("a=%d \n",a); //12
    a = a + 8;
    printf("a=%d \n",a); //20
    a = a * b;
    printf("a=%d \n",a); //200
    return 0;
//一个变量可以重复被赋值
}


#include<stdio.h>
int main()
{
    int a = 12;
    int b = 10;
    printf("a=%d \n",a); //12
    a += 8; // a=a+8
    printf("a=%d \n",a); //20
    a *= b; // a=a*b
    printf("a=%d \n",a); //200
    a -= b; // a=a-b 
    printf("a=%d \n",a); //190
    return 0;
}


//a=a+1 a+=1 a++ 是相同的表达方式
//a++ 是先计算再自增
//++a 是先自增再计算
#include<stdio.h>
int main()
{
    int a = 10, b = 20;
    printf("a=%d,b=%d\n",a,b);
    ++a;
    --b;
    printf("a=%d,b=%d\n",a,b);
    a++;
    b--;
    printf("a=%d,b=%d\n",a,b);
    return 0;
}


#include<stdio.h>
int main()
{
    int a = 10, b = 20, c = 30, d = 40;
    int a1 = ++a, b1 = b++, c1 = --c, d1 = d--;
//a=a+1 a1=a b1=b b=b+1 c=c-1 c1=c d1=d d=d-1
    printf("a=%d,a1=%d\n",a,a1);//11,11
    printf("b=%d,b1=%d\n",b,b1);//21,20
    printf("c=%d,c1=%d\n",c,c1);//29,29
    printf("f=%d,f1=%d\n",d,d1);//39,40
    return 0;
//赋值与自减的先后一定要注意
}


#include<stdio.h>
int main()
{
    int a = 12, b = 1;
    int c = a - (b--);//a-b=11 b=b-1=0 c=11 //注意这里//////// 
    int d = (++a) - (--b);//a=13 b=-1 d=14
    printf("c=%d, d=%d\n",c,d);
    return 0;
}


#include<stdio.h>
int main()
{
    float PI = 3.14159;
    int s1,r = 5;
    double s2;
    s1 = r * r * PI;//这里s1是赋于整数型
    s2 = r * r * PI;//这里s2是双精度浮点型
    printf("s1=%d\ns2=%f\n",s1,s2);
    return 0;
}


#include<stdio.h>
int main()
{
    int sum = 103;
    int count = 7;
    double average;
    average =  (double) sum / count;
//指定average为双精度类型,如果不指定,则输出整数
//后面虽然指定%lf,但是输出14.000000
    printf("Average=%lf!\n",average);
    return 0;
}


#include<stdio.h>
int main()
{
   double total = 400.8;
   int count = 5;
   double unit;
   int total_int = (int)total;
   unit = total / count;
   printf("total=%lf,total_int=%d,unit=%lf\n",total,total_int,unit);
   //total设成双精度,total_int设成整数,unit因为count是浮点,所以unit是浮点
   //400.800000,400
   return 0;
}


#include<stdio.h>
int main()
{
    int a1=20, a2=345, a3=700, a4=22;
    int b1=56720, b2=9999, b3=20098, b4=2;
    int c1=233, c2=205, c3=1, c4=6666;
    int d1=34, d2=0, d3=23, d4=23006783;
    printf("%-9d %-9d %-9d %-9d\n",a1,a2,a3,a4);
    printf("%-9d %-9d %-9d %-9d\n",b1,b2,b3,b4);
    printf("%-9d %-9d %-9d %-9d\n",c1,c2,c3,c4);
    printf("%-9d %-9d %-9d %-9d\n",d1,d2,d3,d4);
    return 0;
    //-9d 占9个字符,-是左对齐,默认右对齐,d是整数输出
}


#include<stdio.h>
int main()
{
    int n = 234;
    float f = 9.8;
    char c = '@';
    char str[] = "https://b.hefang.fun\n";
    printf("%10d%12f%4c%8s",n,f,c,str);
    return 0;
}


#include<stdio.h>
int main()
{
    int n = 123456;
    double f = 882.923672;
    char str[] = "abchefghi";
    printf("n: %.9d %.4d\n",n,n);
    printf("f: %.2lf %.4lf %.10lf\n",f,f,f);
    printf("str: %.5s %.15s\n",str,str);
    return 0;
}


#include<stdio.h>
int main()
{
    int m = 192, n = -943;
    float f = 84.342;
    printf("m=%10d,m=%-10d\n",m,m);
    printf("m=%+d, n=%+d\n",m,n);
    printf("m=% d, n=% d\n",m,n);
    printf("f=%.0f, f=%#.0f\n",f,f);
    return 0;
}


#include<stdio.h>
#include<unistd.h>
int main()
{
    printf("yytak's blog\n");
    //这一行没加\n的时候,程序执行先等5秒,再一起输出
    //加了\n的时候,先显示一行,等5秒再显示第二行
    sleep(5);
    printf("https://b.hefang.fun\n");
    return 0;
}