C语言菜鸟教程:程序的分支结构
if语句
输出33和333中的最大值。
#include <stdio.h>
int main(){
int a = 33;
int b = 333;
if (a > b){
printf("%d\n", a);
}else{
printf("%d\n", b);
}
return 0;
}
输出:
333
多个if
一个人的年龄:
-
小于18:未成年 -
18-30:青年 -
30-60:壮年 -
大于60:老年
假设张三的年龄是33,判断他的年龄属于哪个级别。
示例:
#include <stdio.h>
int main(){
int age = 33;
if (age < 18){
printf("未成年\n");
}else if (age < 30){
printf("青年\n");
}else if (age < 60){
printf("壮年\n");
}else if (age < 120){
printf("老年\n");
}else{
printf("非法年龄\n");
}
return 0;
}
输出:
壮年
三目运算符
示例:求33和333中的最大值。
#include <stdio.h>
int main(){
int a = 33;
int b = 333;
int maxValue = a > b ? a : b;
printf("%d 和 %d 中的最大值是 %d\n", a, b, maxValue);
return 0;
}
输出:
33 和 333 中的最大值是 333
switch分支结构
示例:weekDay表示一周的第几天,假设weekDay为3,判断是星期几。
#include <stdio.h>
int main(){
int weekDay = 3;
switch (weekDay){
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
default:
printf("无效的日期\n");
break;
}
return 0;
}
输出:
星期三
练习:分数评级
分数和对应的评级如下:
-
0-60:不及格 -
60-70:及格 -
70-80:一般 -
80-90:良好 -
90-100:优秀
从控制台录入学生的分数,并给这个学生分数评级并输出。
示例代码:
#include <stdio.h>
int main(){
printf("请输入学生的分数: ");
double score;
scanf("%lg", &score);
if (score < 0 || score > 100){
printf("非法分数\n");
}else if (score < 60){
printf("不及格\n");
}else if (score < 70){
printf("及格\n");
}else if (score < 80){
printf("一般\n");
}else if (score < 90){
printf("良好\n");
}else{
printf("优秀\n");
}
return 0;
}
输出:
良好
练习:工资出行
录入用户的工资,输出该工资对应的交通出行方式:
-
20000:飞机 -
10000:高铁 -
5000:客车 -
1000:自行车 -
其他:步行
示例代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
double salary;
printf("请输入工资:");
scanf("%lg", &salary);
if (salary > 20000)
{
printf("飞机\n");
}
else if (salary >= 10000)
{
printf("高铁\n");
}
else if (salary >= 5000)
{
printf("客车\n");
}
else if (salary >= 1000)
{
printf("自行车\n");
}
else
{
printf("步行\n");
}
return 0;
}
输出:
请输入工资:33333
飞机
练习:判断闰年
让用户输入年份,判断年份是否为闰年。
示例代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
int year;
printf("请输入年份:");
scanf("%d", &year);
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
printf("%d年是闰年\n", year);
}
else
{
printf("%d年不是闰年\n", year);
}
return 0;
}
输出:
请输入年份:2025
2025年不是闰年
练习:求最大数
让用户输入三个整数,计算这三个数中的最大值并输出。
示例代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
int a;
int b;
int c;
printf("请输入第一个数:");
scanf("%d", &a);
printf("请输入第二个数:");
scanf("%d", &b);
printf("请输入第三个数:");
scanf("%d", &c);
// 比较
int max = a > b ? a : b;
max = max > c ? max : c;
// 输出
printf("%d,%d,%d 中的最大值是:%d", a, b, c, max);
return 0;
}
输出:
请输入第一个数:11
请输入第二个数:22
请输入第三个数:33
11,22,33 中的最大值是:33
练习:判断季节
让用户录入月份,判断这个月份属于哪个季节并输出。
示例代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
int month;
printf("请输入月份:");
scanf("%d", &month);
switch (month)
{
case 12:
case 1:
case 2:
printf("冬季\n");
break;
case 3:
case 4:
case 5:
printf("春季\n");
break;
case 6:
case 7:
case 8:
printf("夏季\n");
break;
case 9:
case 10:
case 11:
printf("秋季\n");
break;
default:
printf("错误的月份\n");
break;
}
return 0;
}
输出:
请输入月份:3
春季
练习:成绩级别
分别使用if语句和switch语句输入一个1-100的分数,输出成绩的级别:
-
0-60:不及格 -
60-70:及格 -
70-80:一般 -
80-90:良好 -
90-100:优秀
if语句的示例:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
double score;
printf("请输入1-100的分数:");
scanf("%lg", &score);
if (score < 0 || score>100)
{
printf("错误的分数\n");
}
else if (score < 60)
{
printf("不及格\n");
}
else if (score < 70)
{
printf("及格\n");
}
else if (score < 80)
{
printf("一般\n");
}
else if (score < 90)
{
printf("良好\n");
}
else {
printf("优秀\n");
}
return 0;
}
输出:
请输入1-100的分数:33
不及格
switch语句示例:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
double score;
printf("请输入1-100的分数:");
scanf("%lg", &score);
switch ((int)(score / 10))
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("不及格\n");
break;
case 6:
printf("及格\n");
break;
case 7:
printf("一般\n");
break;
case 8:
printf("良好\n");
break;
case 9:
case 10:
printf("优秀\n");
break;
default:
printf("错误的分数\n");
break;
}
return 0;
}
输出:
请输入1-100的分数:88
良好
THE END