目录
1输入输出
ctrl ~ vscode中显示终端
1.1字符输入输出函数
用‘’单引号包裹的单个字符
getchar 终端输入:man getchar
int getchar(void); 功能;终端输入一个字符 参数:无
返回值:输入字符的ASCII码值
int a =getchar(); printf ("%d\n",a);
putchar 终端输入:man getchar
int putchar(int c); 功能;终端输出一个字符 参数:字符的ASCII码值
返回值:字符的ASCII码值
putchar('\n'); // 或 putchar(10);
1.2按格式输入输出
scanf(除数组外加&取地址符)
int scanf(const char *format, ...);
功能:按格式向终端输入 参数:多个
返回值:正确输入的个数(如果第一个输入错误,返回0)
int a=0,b=0; scanf("%d %d",&a,&b);
printf (加\n)
int printf(const char *format, ...);
功能:按指定的格式终端输出 参数:多个 返回值:输出元素的个数
%d == int 位宽:%nd n表示输出个数,或宽度(要大于等于实际位宽)
%c == char
%f == float %.nf .n表示保留几位小数 %lf==double
%s ==
%p ==指针
%o == 八进制 %#o ==完整的的八进制数
%x == 十六进制 %#x ==完整的十六进制
2垃圾字符回收
1、通过一个空格回收多个空格、tab
问题:
解决
2、%*c *回收任意任意一个字符
3、getchar
多个scanf给char赋值时,回收scanf的换行;一般对char类型使用,换行也是一个字符
3分支语句
if
基本格式
if (表达式) //运行循序:先判断括号内表达式是否成立
{ //成立则执行语句块1反之则执行语句块2
语句块1;
}else
{
语句块2;
}
分层结构
if(表达式1)
{
语句块1;
}else if(表达式2)
{
语句块2;
}else
{
语句块n;
}
嵌套结构
if(表达式1) //else前边必须有if,if后边可以没有else
{ //当分支语句中,语句块只有一行时可以省略{ }
if(){};
}else
{
语句块1;
}
switch
switch (表达式) // 表达式要能计算出实际结果
{
case 常量值: //case后的常量值只能是数字或字符
/* code */
break;
case 常量值:
/* code */
break; //switch语句中,如果没有break,会从符合条件的分支
default: // 一直执行下去,知道遇到break为止或switch运行结束
break;
}
4循环
for
格式
for (表达式1;表达式2;表达式3)
{ //表达式一:给循环变量符初值
语句块; //表达式2:终止条件
} //表达式3:增值或减值
————————————————————————————————
变形写法;
for (; i < 5; i++)
{
printf("%d\n",i);
}
双层循环
for(int i=1;i<6;i++)
{
for(int j=1;j<=4;j++)
{
printf("i:%d j:%d\n",i,j);
}
}
while
格式
while (表达式)
{
语句块;
}