#include<stdio.h>
int main()
{
int a=0;
char ch='\0';
scanf("%d %c",&a,&ch);//12 a 需要注意输入a时&为取地址,取ch的地址,即为输入值a的ASCALL码
printf ("a=%d ch=%c\n",a,ch);//以ASCALL码的形式存放的ch输出为字符形式于是又转换成a
return 0;
}
作业的讲解
猜任意一年是否为闰年:
#include<stdio.h>
int main()
{ int year=0;
printf("please input a year"\n);
scanf("%d",&year);
if (year%4==0&&year%100!=0||year%400==0)
printf{"%d is leap year\n",year};
else
printf{"%d isn't leap year\n",year};
函数
函数是C语言所执行的最小单元;
不允许在函数中嵌套函数
函数的构成:返回类型 函数名称(见名知意) 形参历表
e.g. bool Is-Leap(int year,int month)
返回类型/ 函数名称/形参历表(形态前为类型)
举个例子
bool Is-Leap(int year)
{
if (year%4==0 && year%100!=0 ||year%400==0)
{
return true;
}
else
{
return false;
}
}//定义了一个名为Is-Leap的函数
int main ( )
{
int year;
bool leap;
scanf ("%d",&year);
leap=Is-Leap(year);//实参形参在不同栈帧(可看做大楼)中,在此为实参返回函数的形参中
printf(%d\n,leap);
return(0);
}
练习
输入年份和月份,判断这一年的这一个月有多少天?
int YearMon-To-Day(int year,int month)
{
if(month ==1||month ==3||month ==5||month ==7||month ==9||month ==11||month ==12)
return(31)
if(month ==4||month ==6||month ==9||month ==11)
return(30)
if(month ==2)
if (year%4==0 && year%100!=0 ||year%400==0)
{
return 29;
}
else
{
return 28;
}
int main ()
{
int year=0;
int month=0;
int days=0;
printf("please input year month\n");
scanf("%d %d",&year,&month);
days=YearMon-To-Day(year,month);
printf("%d year %d month %d day\n",year,month,days);
return 0;
}
switch语句
switch(整型变量)
{
case 0: break;
case 1: break;
case 2: break;
case 3: break;
default;break;
}
举个例子,还是判断月份
#include<stdio.h>
int main ()
{
int year=0;
int month=0;
int days=0;
printf("please input year month\n");
scanf("%d %d",&year,&month);
switch (month)
{
case1:case 3:case 5:case 7:case 8:case 10:case 12:
day=31;
break;
case 4:case 6:case 9:case 11:
day=30;
break;
case 2 :
if (year%4==0 && year%100!=0 ||year%400==0)
{
day=29;
}
else
{
day=28;
}
break;
}