目录:
一、流程控制 条件分支
1.语法格式:if(表达式1){
//表达式1为真(非0时),执行的语句部分。
//代码块由一条件或多条语句组成
}else if(){
//表达式1为0为假,执行的语句部分。
}else{
//以上条件补满足是,执行的语句部分。
}
2.在一个完整的if语句中至少要有一个if,elseif可以出现0~n次,else可以出现0~1次。
3.if else语句应用与需要根据不同条件执行代码的场合。
4.if else 语句最多只能执行一个分支,有else分支,必须选择其一执行,无else分支,可以选择其一执行,也可能不执行。
5.如果{}中仅有一条语句,可以省略{},不推荐。
练习:输入一个成绩,得到评价,>90,优;<60,不及格;其他,一般。
1)在键盘上输入一个字母,将小写转换为大写,如果是大写就原样输出。
#include <stdio.h>
//在键盘上输入一个字母,将小写转换为大写,如果是大写就原样输出。
int main()
{
char ch;
printf("请输入一个字母:\n");
scanf("%c",&ch);
if (ch >= 'a' && ch <= 'z') {
printf("转换为大写:%c\n",ch -('a'-'A'));
}else{
printf("大写:%c\n",ch);
}
return ;
}
2)输入一个成绩,0~100之间的整数,根据分数得到相应的级别,100~90优90~80良80~60中60~0不及格
3)准备回家,交通工具,输入工资,小于1300,则显示输入错误,大于10000坐飞机,大于5000坐火车,大于3000坐汽车,大于1500骑自行车,都不满足步行。
4)优化第二题,优A良B中C不及格D,根据分数级别,判断分数范围。
5)判断闰年,平年2月份29天,闰年2月份29天,条件:a,年份可以同时整除4且不能整除100;b,整除400,满足其一就是闰年。输入一个年份判断是否是闰年。
6)输入年、月,求某月有多少天,一共有28,29,30,31几种。
7)输入年,求该年的总天数,365、366
#include <stdio.h>
//输入一个成绩,0~100之间的整数,根据分数得到相应的级别,100~90优90~80良80~60中60~0不及格
void test()
{
int i;
printf("输入一个成绩:\n");
scanf("%d",&i);
if (i >= && i <= ) {
printf("优\n");
}else if(i >= && i < ){
printf("良\n");
}else if(i >= && i < ){
printf("中\n");
}else if(i >= && i < ){
printf("不及格\n");
}else{
printf("无效\n");
}
}
//3)准备回家,交通工具,输入工资,小于1300,则显示输入错误,大于10000坐飞机,大于5000坐火车,大于3000坐汽车,大于1500骑自行车,都不满足步行。
void test2()
{
int salary;
printf("输入工资:\n");
scanf("%d",&salary);
if (salary >= ) {
printf("坐飞机回家\n");
}else if (salary >= ){
printf("坐火车回家\n");
}else if (salary >= ){
printf("坐汽车回家\n");
}else if (salary >= ){
printf("骑车回家\n");
}else if (salary >= ){
printf("步行回家\n");
}else{
printf("输入错误\n");
}
}
/*
输入分数级别ABCD
优(90-100)A
良(80-90)B
中(60-80)C
不及格(0-60)D,
根据分数级别,判断分数范围。
*/
void test3()
{
char fj;
printf("输入分数级别:\n");
scanf("%c",&fj);
if(fj == 'A' || fj == 'a'){
printf("您的分数范围在90~100间\n");
}else if(fj == 'B' || fj == 'b'){
printf("您的分数范围在80~90间\n");
}else if(fj == 'C' || fj == 'c'){
printf("您的分数范围在60~80间\n");
}else if(fj == 'D' || fj == 'd'){
printf("您的分数范围在0~60间\n");
}else{
printf("输入数据无效");
}
}
//判断闰年,平年2月份29天,闰年2月份29天,条件:a,年份可以同时整除4且不能整除100;b,整除400,满足其一就是闰年。输入一个年份判断是否是闰年。
void test4()
{
int year;
printf("输入一个年份:\n");
scanf("%d",&year);
if((year % == && year % !=) || year % == ){
printf("该年是闰年\n");
}else{
printf("该年是平年\n");
}
}
//输入年、月,求某月有多少天,一共有28,29,30,31几种。
void test5()
{
int year;
int month;
printf("请输入年、月\n");
scanf("%d%d",&year,&month);
if(month == ){
/*if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0){
printf("%d是闰年,%d月有29天\n",year,month);
}else{
printf("%d是平年,%d月有28天\n",year,month);
}*/
printf("%d年,%d月有%d天\n",year,month, + (year % == && year % != || year % == ));
}else if(month == || month == || month == || month == ){
if((year % == && year % !=) || year % == ){
printf("%d是闰年,%d月有30天\n",year,month);
}else{
printf("%d是平年,%d月有30天\n",year,month);
}
}else{
if((year % == && year % !=) || year % == ){
printf("%d是闰年,%d月有31天\n",year,month);
}else{
printf("%d是平年,%d月有31天\n",year,month);
}
}
}
//输入年,求该年的总天数,365、366
void test6()
{
int year;
printf("输入年份:\n");
scanf("%d",&year);
/*if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0){
printf("%d年是闰年,总天数366天\n",year);
}else{
printf("该年是平年,总天数365天\n",year);
}*/
printf("%d年,有%d天\n",year, + (year % == && year % != || year % == ));
}
int main()
{
//test();
//test2();
//test3();
//test4();
//test5();
test6();
return ;
}
作业:
1)输入四个数,求出四个数中的最大数、最小值、和
二、流程控制 开关分支(选择分支switch)
1.语法规则:switch(控制表达式){
case 常量表达式1:
语句;
break;
case 常量表达式2:
语句;
break;
……
default:
语句;
}
2. break关键字,终止switch代码块的执行。
3.控制表达式当做整型数据处理,也可以是字符型数据处理,但不能是浮点数和字符串。常量表达式必须是常量(常量和字符),不允许重复。
4.default语句,不一定在最后一行。
#include <stdio.h> int main()
{
int i =;
char ch = 'a';
/*switch (i){
case 1:
printf("一\n");
break;
case 2:
printf("二\n");
break;
default:
printf("有误\n");
}*/
switch (ch){
case 'a':
printf("1\n");
break;
case 'b':
printf("2\n");
break;
default:
printf("有误\n");
}
return ;
}
作业:
(使用switch写)输入一个成绩,0~100之间的整数,根据分数得到相应的级别,100~90优(A)90~80良(B)80~60中(C)60~0不及格(D),根据分数级别,判断分数范围。
#include <stdio.h> int main()
{
char j;
printf("输入分数级别:\n");
scanf("%c",&j);
switch (j){
case 'A':
printf("范围在90-100\n");
break;
case 'B':
printf("范围在80-90\n");
break;
case 'C':
printf("范围在60-80\n");
break;
default:
printf("范围在0-60\n");
}
return ;
}