C语言第七次课重点(形参练习题;switch语句;指针)
(1)回顾练习题:
判断是否为闰年:通过设置形参;
#include <stdio.h>
#include <stdlib.h>
bool Is_Leap(int year)
{
bool leap;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
leap = true;
}
else
{
leap = flase;
}
return leap;
}
//初始化程序 双分支改单分支;
#include <stdio.h>
#include <stdlib.h>
bool Is_Leap(int year)
{
bool leap = false;//初始化
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
leap = true;
}
return leap;
}
(2)Switch多分支结构:只能替代和整形量比较的if else语句。
整型类型:char;short;int;long int; long long.
举例:划分学生成绩
#include<stdio.h>
int main()
{
char grade = '\0';
printf("input gread :(A,B,C,D,E) \n");
sacnf_s("%c",&grade);//A对应其ASCII值
switch(grade)
{
case 'A':printf("90 - 100 \n");break;
case 'B':printf("80 - 90 \n");break;
case 'A':printf("70 - 80 \n");break;
case 'A':printf("60 - 70 \n");break;
case 'A':printf("<60 \n");break;
default;//默认
printf("input char error \n");
break;
}
return 0;
}
case后必须跟整型常量:
//10 十进制常量
010 八进制常量
0x10 十六进制常量
ob1010 二进制常量
‘a’ 字符常量 转换成对应其ASCII码值
“yhping” 字符串常量
12.23 double型常量
12.23f 浮点型常量
true 真常量 1
flase 假常量 0
判断大小月:
int Get_YM_Day(int year, int month)
{
int day = 0;
switch (month)
{
case 1: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;
default:
if (Is_Leap(year))
{
day = 29;
}
else
{
day = 28;
}
return day;
}
}
用数组来判断二月的29天
int Get_YM_Day(int year,int month)
{
int days[13] = {29,31,28,31,30,31,30,31,31,30,31,30,31};
// 0 1 2 3 4 5 6 7 8 9 10 11 12
if(month = 2&& Is_leap(year))//二月且闰年
{
month = 0;//0所对应的29天
}
return days[month];
}
计算累加天数
int Get_YMD_Total(int year,int month, int day)
{
int sum = 0;
for(int i = 1;i < month;++1)
{
sum += Get_YMD_Day(year,i);
}
return sum + day;
}
(3)指针
//字节为存储单元,每个字节有唯一的编号,称其编号为“地址”或“指针”。
// * 运算符所在的环境不一样 其代表的含义也不一样。
//此处的“解引用”也可以视为“指向”。
//区分 (int*)= s,r;这类型名加括号为“强转”,int* s r;这种情况是定义。
//* 星号必须和变量进行结合 如int *a
区分以下内容:
//其中int *ip=NULL;此处为“声明”,*ip=100;此处为“指向”或“解引用”。
ip开辟空间,其地址为:0x00daf8ec, ip = &a;则是把a的地址给了ip,此时 *ip就是a本身,把100 赋给 *ip就是把100赋给了a。同理把200赋给了b。
//指针有两个值:一个是自身的值,另一个是指向的值。
//int *ip=NULL; 把空给了ip而不是 *ip ,此处的 * 号是“声明”,是一种标识的概念,告诉你这是指针。
牢记: