前言:感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续我会分享更多学习编程的内容。
1.二分支结构和if-else语句
二分支结构的形式主要有两种,如图所示,使用基本的if语句实现,即if-else语句和省略else的if语句。
下图为两种语句的流程图图解:
(1)用if-else语句实现,该语句的一般形式为:
if(表达式)
语句1;
else
语句2;
执行流程:先求解表达式,如果表达式的值为‘真’,就执行语句1;否则(即表达式的值为‘假’),就执行语句2。语句1和语句2总要执行一个,但是不会都执行。
(2)用省略else的if语句实现,该语句的一般形式为:
if(表达式)
语句1;
执行流程:先求解表达式,如果表达式的值为‘真’,就执行语句1;否则(即表达式的值为‘假’),就什么都不做。
注意:这里的语句1和语句2也称为内嵌语句,只允许是一条语句,若需要使用多条语句,应该用大括号把这些语句括起来组成复合语句。
2.多分支结构和else-if语句
else-if语句是最常用的实现多分支(多路选择)的方法,其一般形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
····
else if(表达式n-1)
语句n-1;
else
语句n;
流程图如图所示:
执行流程:首先求解表达式1,如果表达式1的值为‘真’,则执行语句1,并结束整个if语句的执行,否则,求解表达式2······最后的else处理给出条件都不满足的情况,即表达式1,表达式2······表达式n-1的值都为‘假’时,执行语句n。
1.对于二分支结构:
(1)问题一:奇偶分家。输入一个正整数n,再输入n个非负整数,统计奇数和偶数各有多少个。
源程序:
#include
int main()
{
int count_odd, count_even, i, n, number;
count_odd=0; //count_odd记录奇数个数
count_even=0; //count_even记录偶数个数
printf("Enter n:");
scanf("%d", &n);
printf("Enter %d numbers:", n);
for (i=1; i<=n; i++)
{
scanf("%d", &number);
if (number%2!=0) //判断奇数的条件
{
count_odd++; //如果满足则奇数加一
}
else
{
count_even++; //否则偶数加一
}
}
printf("odd:%d, Even:%d", count_odd, count_even);
return 0;
}
简单分析:这里首先是通过for语句来实现多个非负整数的读取(关于for语句的用法可看前面的博客),区分奇偶通过二分支结构if-else语句即满足括号内条件则执行odd++,不满足则执行对于的even++,从而实现完整的程序。
(2)问题2:统计指定数量学生的平均成绩与不及格人数。输入一个非负整数n,再输入n个学生的成绩,计算平均成绩,并统计不及格成绩的学生人数。
源程序:
#include
int main()
{
int count, i, n;
double score, total;
printf("Enter n:");
scanf("%d", &n);
count=0; //count用于记录不及格人数
total=0;
for (i=1; i<=n; i++)
{
printf("Enter score#%d:", i); //学生成绩的输入
scanf("%lf", &score);
total=total+score; //计算总和
if (score<60) //判断不及格条件
{
count++;
}
}
if (n!=0)
{
printf("Average=%.2f\n", total/n); //求平均成绩
}
else
{
printf("input error"); //人数为零则显示输入错误
}
printf("Number of failures=%d\n", count); //显示不及格人数
return 0;
}
简单分析:同样这里通过for语句来实现指定学生的成绩输入,这里运用了两次if-else语句,第一次是为了区分成绩及格与不及格,从而统计不及格学生人数,第二次是为了避免输入指定学生人数为零,若为零,则显示输入有误。
2.对于多分支结构:
歌词的显示:
源程序:
#include
int main()
{
printf("请输入类型:");
int type;
scanf("%d", &type);
if (type==5)
{
printf("我的纸飞机呀");
}
else if(type==2)
{
printf("飞呀飞");
}
else if(type==1)
{
printf("飞到了芦荡边");
}
else
{
printf("game over");
}
return 0;
}
简单分析:这里通过多分支语句即级联的else-if语句,从而实现对于不同的表达式下执行不同的语句,从而实现多分支的进行。
最后,感谢大家的浏览,期待老铁的一键三连加关注,编程路上有你不再孤单。