9.6Day03输入输出

目录

一、输入输出

1.按字符输入输出

(1).getchar

(2).putchar

(2).printf

二、垃圾字符回收

1.通过一个空格回收一个或多个空格、tab

2.%*c*抑制符回收任意一个字符(仅作了解)

3. getchar

三、分支语句

1.if

格式

分层结构

嵌套结构

注意:

2.switch

四、循环语句

for

嵌套结构

while


一、输入输出

1.按字符输入输出

用' '包裹单个字符

(1).getchar

查看getchar相关功能及用法:终端输入:man getchar

格式:int getchar(void);

功能:终端输入一个字符

参数:无

返回值:输入字符的ASCII码值

int a=getchar(); //输入123//输出1

printf("%d\n",a); //输入多个字符时,只输出第一个字符

(2).putchar

例:int putchar(int c);

功能:终端输出一个字符

参数:字符的ASCII码值

返回值:字符的ASCII码值

int a=getchar();

putchar(a); //输出后没有分行

putchar('\n'); //或putchar(10);

2.按格式输入输出

(1).scanf

int scanf(const char *format, ...);

功能:可以输入一些内容(从终端输入)

参数:1:字符串(只写格式)

2:用来保存数据的变量的地址

(与输出相同)

返回值:正确输入的个数

如果第一个输入错误,直接返回0

(2).printf

格式:int printf(const char *format, ...);

功能:按格式终端输出

格式:

%d int

%c char

%f float %.nf保留n位小数

%lf double %.nlf保留n位小数

%s 字符串

%p 指针

%o 八进制 %#o 完整形式八进制

%x 十六进制 %#x 完整形式十六进制

%e 指数

int a=021;

printf("%o\n",a); //21

printf("%#o\n",a); //021

参数:1:字符串(只写格式)

2:用来保存数据的变量的地址

返回值:输出元素个数

int a=6,

b=66;

char c='w';

printf("a的值为:%d ,b的值为:%d ,c的值为:%c\n",a,b,c);//a的值为:6 ,b的值为:66 ,c的值为:w

位宽:

int a=6,

b=66,

c=666;

printf("%3d\n",a); // 6

printf("%3d\n",b); // 66

printf("%3d\n",c); //666

二、垃圾字符回收

1.通过一个空格回收一个或多个空格、tab

输入出现如下问题:

解决:

2.%*c*抑制符回收任意一个字符(仅作了解)

3. getchar

多个scanf给char赋值时,回收scanf的换行,一般对char类型使用,换行也是一个字符

三、分支语句

1.if

格式

if(表达式)

{

        语句块1;

}else

{

        语句块2;

}

运行顺序:先判断括号内表达式是否成立,成立则执行语句块1 反之执行语句块2

==========================

例:

int age=20;

if(age>18)

{

        printf("工作\n");

}else

{

        printf("学习\n");

}

分层结构

if(表达式1)

{

        语句块1;

}elseif(表达式2)

{

        语句块2;

}else

{

        语句块n;

}

===================

例题:

100-90 A

89-80 B

79-70 C

<70 补考

int n=0;

scanf("%d",&n);

if(n>=90 && n<=100)

{

        printf("A\n");

}else if(n>=80 && n<=89)

{

        printf("B\n");

}else if(n>=70 && n<=79)

{

        printf("C\n");

}else

{

        printf("补考\n");

}

嵌套结构

if(表达式1)

{

        if(){};

}else

{

        语句块1;

}

======================

例:

if(s>=0 && s<=100)

{

        if(){};

}else

{

        printf("error\n");

}

注意:

1.if语句的花括号可以省略,但是只控制一条语句 。

2.if语句后面可以没有else ,但是else前面必须有if。

2.switch

switch (表达式)

{

        case 常量值1:

                /* code */

                break;

        case 常量值2: //case后的常量值只能是数字或字符

                /* code */

                break;

        default:

                break;

}

switch语句中,如果没有break,会从符合条件的分支开始一直执行下去,直到遇到break为止或switch运行结束。

四、循环语句

for

for(表达式1;表达式2;表达式3)

{

        循环执行的语句块;

}

表达式1:赋初始值

表达式2:控制循环执行的语句(进入循环的条件 或者 终止循环的条件)

表达式3:递增或者递减

int sum=0;

for (int i = 3; i <= 7; i++)

{

        sum+=i;

}

printf("%d\n",sum); //25

执行顺序:定义变量,执行表达式1,判断表达式2是否成立,如果成立进入循环

执行完成循环语句块之后 执行表达式3,判断表达式2是否成立,如果成立进入循环

执行完成循环语句块之后 执行表达式3.......判断表达式2是否成立,如果不成立 结束循环。

嵌套结构

for()

{

  for()

  {

  }

}

双层for特点:外层循环执行一次,内层执行完成全部

外层循环控制行数 内层循环控制列数

while

定义循环变量

while(判断条件)

{

        //循环体

        递增或者递减

}

例:

int i=1;

while(i<5)

{

        printf("%d\n",i);

        i++;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值