一.题目解答
上篇文章我们最后留的两个问题的答案我将提供给大家以供大家参考(注:答案不唯一,只要代码逻辑正确,并且结果符合题目要求测试多组数据后结果均无误即可)。
1.
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);//输入a,b的值
int temp;//设一个变量temp用于交a,b的值
temp=a;
a=b;
b=temp;//交换a,b的值即先将a的值传给temp,再将b的值传给a,最后将temp的值传给b
printf("%d %d",a,b); //最后打印交换数值后的a,b
return 0;
}
以下为测试结果
2.
#include<stdio.h>
int main()
{
double F;
scanf("%lf",&F);
double C=(F-32)*5/9;
printf("%.2f",C);
return 0;
}
以下为测试结果
好了上篇的问题就解决到这里接下来让我们进入正片
二.分支结构
作为三大基础结构中的老二它可谓是在我们未来中的代码中地位重要。何为分支结构,分支结构是程序设计中的基本控制流之一,它允许程序在特定条件下执行不同的路径。常见的分支结构包括:if else 以及switch语句,根据某个条件的结果来决定程序的执行流程。例如,如果满足某个条件,则执行一段代码;否则,执行另一段代码。
1.if else语句
所谓if else语句按照我们的英语理解就是如果不……那么就……,而这里的if后面一定要跟一个判断条件,而且有这么一个规则else只和与它最近的if进行匹配,也就是说当与它最近的if后面的条件不成立或者说不满足那么就执行这个else所包含的语句,而且要注意一点就是无论是if还是else后面跟一个语句可以不用使用大括号,但是如果后面是多个语句那么就要使用大括号。下面我给大家演示以下一个最经典的例子:判断输入的值是不是偶数,若是则打印偶数,若不是则判断该数是奇数还是零。
分析一下吧,我们都知道判断一个数是不是偶数的标准是看这个数能否被2整除,那么思路就来了首先if的判断标准是看输入的数字能不能被2整除,若能直接打印,若不能再判断该数是能否被3整除,若能则该数既是奇数也能被3整除若不是则该数是奇数但不能被3整除。(注:这里有一个保险就是对输入的数进行判断保证进入判断的数没有0和负数)下面让我们看一看代码
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n<=0){
printf("你输入的既不是奇数也不是偶数!");
return 0;
}//这一步是为了排除0以及负数的干扰
if(n%2==0)
printf("偶数");
else{
if(n%3==0)
printf("是奇数且能被3整除");
else
printf("是奇数但不能被3整除");
}
return 0;
}
下面是节选的其中一组测试结果,为了不让大家觉得小编在凑字数所以其他的数据这里就不展示了大家有兴趣可以去测试一下
2.switch语句
switch语句也是分支结构中的一种,它的条理看起来很清楚所以简单是它的一大优势,但是也有一定的局限性比如:
-
表达式限制:
switch
只能处理枚举类型、整数常量或字符串常量作为比较的表达式,而if-else
则更为通用,可以处理任意类型的条件判断。 -
默认分支:
switch
没有明确的default
分支,如果所有 case 都不匹配,程序会抛出异常或继续执行下一个未处理的语句,而if-else
可以设置一个默认分支来处理这种情况。 -
语句块:
switch
中每个case
后面跟着的是一个简单的语句而不是一个完整的代码块,这意味着你不能在一个 case 中包含复杂的逻辑,需要分别使用独立的break
来结束。而在if-else
中可以包含任意多的语句。 -
类型检查:
switch
对于不同类型的数据可能会有不同的行为,比如字符串switch
可能在某些语言中无法直接使用,需要额外的转换步骤。
下面我们将用一个问题来加深对switch语句的理解。例:输入数字1~7中的任意一个数字打印对应的星期数(英文)
#include<stdio.h>
int main()
{
int day;
printf("请输入数字1~7中的一个:");
scanf("%d",&day);
switch(day){
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thursday");
break;
case 5:
printf("Friday");
break;
case 6:
printf("Saturday");
break;
default:
printf("Sunday");
}
return 0;
}
以下为一组测试结果
从上面的代码可以看出switch语句的条理确实十分清晰,有人可能疑惑了default是什么,default表示的是除上面的几种情况之外的剩下情况所要执行的代码。
三.总结
综上所述,在往后的使用中我们要根据实际情况以及要处理的目标数据的复杂程度来择优而选。好了分支结构就到这里,和上期一样我给大家提供两个练习题,大家小试牛刀巩固巩固(^_^)。
1. 设计程序计算下面函数的值。
2. 假设四季的划分如下:3~5月份为春季,6~8月份为夏季,9~11月份为秋季,12~2月份为冬季。编写一个函数,输入年月日(格式为年-月-日),输出季节。例如,输入2020-3-16,输出“春季”。