#includeint main() { int a,b; scanf("%d,%d",&a,&b);//输入时是按这个的顺序 printf("a=%d,b=%d,a+b=%d",a,b,a+b); }
| auto | const | double | float | int | short | struct | unsiged |
| break | continue | else | for | long | signed | switch | void |
| char | do | extern | if | return | static | union | while |
| case | default | enum | goto | register | sizeof | typedef | volatile |
标识符:字母、数字(不能开头)、下划线
进制转化二进制(计算机识别)
八进制 0
十进制
十六进制 0x(观察内存)x86架构是小端架构,低位在前,高位在后
1位 1bit 存储0或1
1字节 1byte=8bit
1kb=1024byte
int i占用4个字节
float f占用4个字节空间
char c 一个字符占用1个字节
#includeint main() { float f=1.234;//3e3-3000 3e-3-0.003 printf("%fn",f);//%f就是以浮点形式输出对应数据 char c='a';//单引号中只能有一个字符 定义一个c赋值a printf("%c",c);//c也可以写成97 printf("%d",c);//数据结果为97 }
大小写转换A+32=a
#includeint main() { char c='a';//如何将a变成A c=c-32; printf("%cn",c);//以字符形式 printf("%dn",c);//以整数形式 }
"a"字符串型常量 ‘a’字符型常量 结束字符串
#include数据的输入输出函数int main()//混合运算 { int i=5; float j=i/2;//j=2.000000 float k=(float)i/2;//()强制转换,k输出结果2.500000 }
scanf读取的是标准输入
printf输出到黑窗口(控制台)输出到了标准输出
# include
int scanf(const char *format,...);...是可变参数,参数数目与format中的%的数目保持一致
| %f | 一个浮点苏 |
| %d | 一个十进制整数 |
| %c | 一个单一的字符 |
%d %c %f不限制数目
#include//缓冲区为空的时候,scanf才会阻塞 int main() { int i; char c; scanf("%d",&i);//当你输入10时不会阻塞因为后面有个n=10 printf("i=%dn",i); scanf("%c",&c); printf("c=%c",c); }//%d,%f 会忽略n
#includescanf的循环读取//判断闰年 int main() { int year; scanf("%d",&year); if(year%400==0||year/4==0&&year/100!=0) { printf("yesn"); } else{ printf("non"); } }
发生错误时返回EOF
什么是EOF直接输入EOF按着Ctrl,左键点,EOF就是-1
#include///清空缓冲区,vs2012 fflush(stdin) //stdin是标准输入 //现在用rewind(stdin)清空标准输入缓冲区 int main(){ int i,ret; while(rewind(stdin),(ret=scanf("%d",&i))!=EOF)//while是实现循环,后面要有一个小括号 { printf("i=%dn",i); } return 0; }
行首按三次Ctrl+z时会出错
#include//循环转换字符 int main(){ char c; while(scanf("%c",&c)!=EOF){ if(c!='n'){ printf("%c",c=c-32); } else{ printf("n"); } } }
这里就不适合用rewind(stdin)
#includeprintf函数的使用//一个scanf读多种类型数据 int main(){ int i; char c; float f; int ret;//调试看读取了几个 ret=scanf("%d %c%f",&i,&c,&f);//每次读取字符前加一个空格就行 printf("i=%d,c=%c,f=%f",i,c,f);//不能出来没有空格 return 0; }
#include\printf控制输出格式 int main(){ printf("name=%s,age=%d,sex=%c,score=%4.1fn","heheng",21,'m',98.5);\结果出来会有98.500000改成%4.1f小数点后与一位有四位数 //%10s占10个字符默认靠右,加负号时靠左 }
#includeC语言没有布尔模型(认为一切非0的值都为真)int main() { int a = 4+5*2-6/3+11%4; //4+10-2+3 printf("%dn",a); scanf("%d",&a); printf("a=%dn",a);//如果输入1234如何输出4321 while (a!=0) { printf("%d",a%10); a=a/10; } return 0; }
算数>关系>逻辑
#include//关系运算符不能并写,逻辑运算符 int main() { printf("%dn",5>3);//1 printf("%dn",5<3);//0 //判断两个浮点数是否相似(内存中相似存储) float f=234.56;//判断浮点数是否等于某值(相似) if(f-234.56>-0.0001&&f-234.56<0.0001){ printf("yesn"); } else{ printf("non");//if(f==234.56)不相似 } }
赋值运算符左边必须是变量不能加上数
#include//++i,--i直接正常运算即可,i++,i--拆成两步 int main() { int i=-1; int j; j=i++>-1;//分为两步j=i>-1;i++ printf("i=%d,j=%dn",i,j); printf("i占的字符数%dn",sizeof(i)); }



