【C语言你还没卷起来?| 第六篇】一文带你精通选择结构

简介: 【C语言你还没卷起来?| 第六篇】一文带你精通选择结构

引言

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。它在编程语言中具有举足轻重的地位。

此文为【C语言必知必会】系列第六篇,进行C语言选择结构的专项练习,结合专题优质题目,带领读者从0开始,深度掌握知识点。



1️⃣ 前言

在上一讲中,带领读者掌握了选择结构的相关知识点,由于题目和实践是学习的核心,所以开展专项练习十分重要。

在本讲中,将深入剖析几个经典的C语言选择结构练习带领读者在理论结合实际的基础上更好地学习、吸收、掌握C语言。


2️⃣专项练习

C语言的选择结构主要通过if语句实现,当我们面临需要从多个选项中选择执行某个代码块的情况时,可以使用选择结构来解决问题。

一个通用的解题思路如下:

1.首先,明确需要根据哪些条件进行选择,并确定你要解决的具体问题。

2.根据题目要求,使用逻辑表达式设计判断条件。这些条件可能基于变量值、用户输入、函数的返回值等。

3.利用if语句来实现选择结构。if语句的一般形式为:

if (condition) {
    // 执行条件满足时的代码块
} else {
    // 执行条件不满足时的代码块(可选)
}

根据条件的判断结果,if语句会选择性地执行相应的代码块。

4.如果有多个选项需要判断,可以使用嵌套的if语句或者else if语句来处理。例如:

if (condition1) {
    // 执行条件1满足时的代码块
} else if (condition2) {
    // 执行条件2满足时的代码块
} else {
    // 若上述条件都不满足时的默认代码块(可选)
}

else if语句中,可以依次添加更多的条件进行判断。

5.在编写选择结构的代码时,要注意条件的逻辑和顺序。确保条件的判断是正确的,并按照预期的顺序进行排列。

6.完成代码后,进行测试和调试以确保其正确性。使用不同的测试用例来验证代码在各种情况下的行为是否符合预期。

以上是一个通用的解题思路,仍需根据具体问题的要求进行适当的调整和扩展。

接下来,让我们开始本节课程的专题练习,读者需要躬身实践来掌握。


第一题:编写已知3边求三角形的面积(计算公式见下)的通用程序。

要求:(1)该程序不仅能处理输入的边长为整数,也能处理实数边长;

(2)若输入的三边能构成三角形,则求其面积并输出;否则,输出“Sorry, it is not a triangle.”;

(3)输出结果保留2位小数;

解题思路如下:

  • 使用一条双分支的if语句来判断输入的三边能否构成三角形,即任意两边之和都必须大于第三边
  • 再使用sqrt函数求面积即可

下面是具体的代码实现:

#include <stdio.h>
#include <math.h>
int main()
{
  double a,b,c,p,s;
  scanf("%lf %lf %lf",&a,&b,&c);
  if(a+b>c&&a+c>b)
  {
    p=0.5*(a+b+c);
    s=sqrt(p*(p-a)*(p-b)*(p-c));
      printf("%.2f",s);
  }
  else{
    printf("Sorry,it is not a triangle.");
  }
  return 0;
}

值得注意的是,我们在代码块中将1/2写作0.5,这样是避免1/2被计算机计算为0,导致结果错误的情况。

程序运行结果如下:

自此,第一题已解题结束。


第二题:将键盘输入3个整数依次存入变量a,b,c中,按升序(a最小、c最大)输出所输入的3个整数。

要求: 输出时a中必须为最小值,c中必须为最大值。

解题思路

先对a和b进行排序,使a和b中较大的值赋给b,较小的值赋给a

if(a>b)
  {
    t=b;
    b=a;
    a=t;
  }

此时b比a大,接下来只需要比较b与c的关系即可:

if(b>c)
  {
    t=c;
    c=b;
    b=t;
  }

代码实现:

#include <stdio.h>
#include <math.h>
int main()
{
  int a,b,c,t;
  scanf("%d %d %d",&a,&b,&c);
  if(a>b)
  {
    t=b;
    b=a;
    a=t;
  }
  if(b>c)
  {
    t=c;
    c=b;
    b=t;
  }
  printf("%d %d %d",a,b,c);
  return 0;
}

程序运行结果:

自此,第二题已解题完毕。


第三题:判断输入的一个3位整数是否为回文数字。

解题思路

先看看什么是回文数字:

无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字

由于题目要求的是判断一个三位整数是否为回文数字,因此我们只需判断第一位与第三位是否相同即可。

怎么知道第一位的数字是多少呢? num/100

怎么知道第三位的数字是多少呢?num%10

代码实现

#include <stdio.h>
int main()
{
  int num;
  scanf("%d",&num);
  if(num/100==num%10)
  {
    printf("%d是回文数",num);
  }
  else 
  {
    printf("%d不是回文数",num);
  }
  return 0;
}

注意:判断数值是否相等时需要使用的运算符为== 而不是=

程序运行结果:

自此,第三题已解题完毕。


第四题:根据如下分段函数,输入的x的值,输出对应的y值,小数点后保留3位小数。

解题思路

使用 if—else 语句并且利用多个else的特性进行题解

if(x>6)
else if(x>0)   这里表示0<x<=6
else    这里表示x<=0
//ToDo

代码实现

#include <stdio.h>
#include <math.h>
int main()
{
double x,y;
scanf("%lf",&x);
if(x>6)
{
  y=5.0/27*(x*x-4*x-6);
}
else if(x>0){
  y=log(16)/log(3)+x;
}
else
{
  y=23.0/7*fabs(7*x*x*x+4);
}
printf("%.2f",y);
return 0;
}

程序运行结果:


5️⃣总结

此文为 【C语言你还没卷起来?】系列之第六篇 ,通过以题代练的形式带领读者掌握C语言的选择结构,带领读者从0开始,深度掌握知识点。

以题代练对于C语言的学习是十分重要的,专栏将持续提供优质C语言理论与实践的学习,带领读者全方位掌握C语言,读者可订阅专栏持续跟进。

目录
相关文章
|
3天前
|
C语言
C语言之分支结构
C语言之分支结构
24 0
|
3天前
|
C语言
C语言结构体内存对齐
C语言结构体内存对齐
|
3天前
|
Serverless C语言
C语言程序通常具有以下基本结构
C语言程序通常具有以下基本结构
12 0
|
3天前
|
C语言
C语言选择结构
C语言选择结构
17 0
|
3天前
|
存储 C语言
C语言顺序结构:基础与实践
C语言,作为一种广泛使用的编程语言,其程序结构可以分为三种基本类型:顺序结构、选择结构和循环结构。在这篇文章中,我们将重点讨论顺序结构的概念、特点以及如何在C语言中实现顺序结构的程序设计。
46 1
|
3天前
|
存储 编译器 Linux
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
|
3天前
|
C语言
【精通C语言】:分支结构if语句的灵活运用
【精通C语言】:分支结构if语句的灵活运用
26 1
|
3天前
|
编译器 Linux C语言
C语言:结构体(自定义类型)知识点(包括结构体内存对齐的热门知识点)
C语言:结构体(自定义类型)知识点(包括结构体内存对齐的热门知识点)
|
3天前
|
Java C语言 C++
C语言中用switch语句实现多分支选择结构
C语言中用switch语句实现多分支选择结构
21 0
|
3天前
|
存储 编译器 C语言
C语言之结构体内存对齐与内存的简单理解
C语言之结构体内存对齐与内存的简单理解