[1]输入输出
按字符输入输出
getchar
用法格式:
#include <stdio.h>
int getchar(void);
功能:向终端输入一个字符
参数:无
返回值:终端输入的字符的ASCII码值
int res=getchar();
printf("%d\n",res);
putchar
用法格式:
#include <stdio.h>
int putchar(int c);
功能:终端输出一个字符
参数:字符的ASCII码值
返回值:字符的ASCII码值
putchar没有换行的效果,需要额外添加
int res=getchar();
putchar(res);
int num=putchar('\n');//putchar(10);
// printf("%d\n",num);
按格式输入输出
printf
#include <stdio.h>
int printf(const char *format, ...);
功能:按指定的格式向终端输出
参数:多个
返回值:正确输出字符个数
格式:
%d int %c char %f float %lf double %s 字符串 %p 指针 %o 八进制【%#o】 %x 十六进制【%#x】
scanf
#include <stdio.h>
int scanf(const char *format, ...);
功能:按指定的格式向终端输入 (输入完毕时以回车结束)
参数:多个
返回值:
正确输入的字符个数
第一个字符输入格式错误,直接返回0
scanf格式必须和终端输入格式一一对应,不能加'\n'
变量名前边加&(取地址符),表示取变量的地址
int a=0;
scanf("%d",&a);
printf("a:%d\n",a);
--------------------------
int a=0,b=0;
scanf("%d %d",&a,&b);
printf("a:%d b:%d\n",a,b);
[2]垃圾字符回收
通过空格回收
可以回收一个或多个空格 tab 回车
char c = 0,d = 0;
scanf("%c %c",&c,&d);
printf("c:%c d:%d\n",c,d);
%*c *抑制符 (了解)
可以回收任意一个字符
char c = 0,d=0;
scanf("%c%*c%c",&c,&d);
printf("c:%c d:%c\n",c,d);
getchar
scanf输入结束时,会在终端输入'\n';
解决'\n'对程序造成的影响:
while(1)
{
char a;
scanf("%c\n",&a);
printf("%c\n",a);
getchar();
}
[3]分支语句
if
基本结构:
if(常量值或表达式)
{
//代码块;
}
if(常量值或表达式)
{
//代码块1;
}
else
{
//代码块2;
}
多层分支:
if(表达式1)
{
代码段1;
}
else if(表达式2)
{
}
else
{
}
嵌套结构:
if(表达式1)
{
if(表达式2)
{
}
}
注意:
1. if后边可以没有else, else前边必须有if
2. 分支语句代码块只有一句时,可以省略{ }
switch
基本结构:switch(常量值或表达式)
{
case 常量值1:
代码块1;
break;
case 常量值2:
代码块2;
break;
default:
代码块n;
break;
}
例:
int a=4;
switch (a)
{
case 1:
printf("aaaa\n");
break;
case 4:
printf("bbb\n");
break;
case 5:
printf("ccc\n");
break;
default:
break;
}
习题:
1.终端输入一个日期,判断是这一年的第几天
scanf("%d-%d-%d",&y,&m,&d);
闰年2月29天,平年2月28天
程序如下:
运行结果如下: