局部变量和全局变量可以重命名,作用域遵循就近原则
1)输入输出
1.1按字符输入输出
getchar
man 手册查看getchar
#include<stdio.h>
int getchar(void);
功能:向终端输入一个字符
参数:无
返回值:终端输入的字符的ASCII码值
int res getchar();
printf("%d\n",res); // 输入一个数,输出他的ASCII码
putchar
#include<include>
int putchar(int c);
功能:终端输出一个字符
参数:字符的ASCII码值
返回值:字符的ASCII码值
putchar 无换行效果,需要额外添加
int res = getchar();
putchar(res);
int num=putchar('\n'); //putchar(10)
// printf("%d\n",num);//
1.2按格式输入输出
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’
变量名前边加&(取地址符),表示取变量的地址
2)垃圾字符回收
2.1 通过空格回收
可以回收一个或多个空格 tab 回车
char c=0,d=0;
scanf("%c %c",&c,&d);
printf("c:%c d:%d\n",c,d);
2.2 %*c *抑制符(了解)
可以回收任意一个字符
char c=0,d=0;
scanf("%c%*c%c",&c,&d);
printf("c:%c d:%c\n",c,d);
2.3 getchar
while(1)
{
char a;
scanf("%c",&a);
printf("%c\n",a);
getchar();
}
3)分支语句
顺序结构:
分支结构:
循环结构:
if
基本结构
if(常量值或表达式)
{
//代码块
}
if(常量值或表达式)
{
//代码块1
}
else
{
//代码块2
}
多层分支
if(表达式1)
{
代码段1;
}
else if (表达式2)
{
代码段2;
}
else
{
代码段3;
}
嵌套结构
if(表达式1)
{
if(表达式2)
{
代码段1;
}
代码段2;
}
注意
1.if后边可以没有else,else前面必须有if
2.分支语句代码块只有一句时,可以省略{ }
switch
switch(常量值或表达式)
{
case 常量值1:
代码块1;
break;
case 常量值2:
代码块2;
break;
default:
代码块n;
break;
}
注意:
1.case后边的常量值时整型或字符型,不是浮点型或字符串
2.case分支遇到break结束;后边可以没有break,会从符合条件的分支开始一直运行到整个switch语句执行完才结束
2输入日期,输出这天是这一年的第几天。
#include <stdio.h>
int main(int argc,char const *argv[])
{
int y=0,m=0,d=0,sum;
printf("输入日期:") ;
scanf("%d-%d-%d",&y,&m,&d);
{
switch (m)
{
case 1:
sum=0;
break ;
case 2:
sum=31;
break;
case 3:
sum=59;
break;
case 4:
sum=90;
break;
case 5:
sum=120;
break;
case 6:
sum=151;
break;
case 7:
sum=181;
break;
case 8:
sum=212;
break;
case 9:
sum=243;
break;
case 10:
sum=273;
break;
case 11:
sum=304;
break;
default:
sum=335;
break;
}
sum=sum+d;
if(m>=3)
{
if((y%4==0&&y%100!=0)||(y%400==0))
{
sum++;
printf("是这一年的%d天\n",sum);
}
else
{
printf("是这一年的%d天\n",sum);
}
}
else
{
printf("是这一年的%d天\n",sum);
}
}
return 0;
}