#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;
}