C语言学习记录(四)

一.题目解答

    上篇文章我们最后留的两个问题的答案我将提供给大家以供大家参考(注:答案不唯一,只要代码逻辑正确,并且结果符合题目要求测试多组数据后结果均无误即可)。

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语句也是分支结构中的一种,它的条理看起来很清楚所以简单是它的一大优势,但是也有一定的局限性比如:

  1. 表达式限制switch 只能处理枚举类型、整数常量或字符串常量作为比较的表达式,而 if-else 则更为通用,可以处理任意类型的条件判断。

  2. 默认分支switch 没有明确的 default 分支,如果所有 case 都不匹配,程序会抛出异常或继续执行下一个未处理的语句,而 if-else 可以设置一个默认分支来处理这种情况。

  3. 语句块switch 中每个 case 后面跟着的是一个简单的语句而不是一个完整的代码块,这意味着你不能在一个 case 中包含复杂的逻辑,需要分别使用独立的 break 来结束。而在 if-else 中可以包含任意多的语句。

  4. 类型检查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,输出“春季”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值