C语言的分支语句有哪几种?C语言分支结构的基本形式是什么,区别是什么?

C语言的分支语句有哪几种?C语言分支结构的基本形式是什么,区别是什么?,第1张

C语言中的分支结构有三种:

1、单分支结构

单分支结构的基本形式是:

if( <条件表达式>)

{

(语句块)

}

2、双分支结构

双分支结构的基本形式是:

if( <条件表达式>)

{

 语句块1; 

}

else

{

语句块2; 

}

3、多分支结构

多分支结构又分为:“分支结构的嵌套”“switch语句”

(1)分支结构的嵌套的基本形式是:

if( <条件表达式>)

{

   if( <条件表达式>)

   {

   语句块1  

   }

   else

   {

   语句块2  

   }

 }

else

{

  if( <条件表达式>)

   {

    语句块3  

   }

   else

   {

     语句块4  

   }

}

(2)switch语句

(2)switch语句的基本形式是:

switch(表达式)

{

  case 常量1:语句1;break;

  case 常量2:语句2;break;

  case 常量3:语句3;break;

   ……

  case 常量n:语句n;break;

  default : 语句n+1;

}

这三种分支结构的区别在于:

1、单分支结构在满足条件时执行,不满足条件不执行;

2、在双分支结构中,如果条件表达式成立,则执行语句块1,否则,执行语句块2,所以双分支结构至少执行一次

3、多分支结构的分支结构的嵌套中,分支结构的嵌套包含了单分支结构与双分支结构的特性,可以用单分支结构嵌套双分支结构,也可用双分支结构嵌套单分支结构,通俗的来讲就是分支结构中放入一个分支结构,当条件成立则执行分支结构中嵌套的分支结构;

4、switch语句可以理解成其他的分支结构的总和,switch集成了上述所有分支结构的特性,在有多种情况的时候才使用switch,当switch(条件)满足case 后面的常量,则执行对应的语句,若满足的条件未能匹配到对应的常量,则执行default后的语句,有default的switch语句是至少执行一次的,当然default也可省略不写,这样switch语句也可以一次都不执行。

不知道你题目中的塔是柱状塔还是锥状塔,对于柱状塔,源代码如下。

#include "stdio.h"

#include "math.h"

double Dist(double x1, double y1, double x2, double y2)

{

return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * ( y1 - y2))

}

double GetHigh(double x, double y),

{

int signx = 1, signy = 1

if(x <0) signx = -1 /*先求点(x, y)所在象限*/

if(y <0) signy = -1

if(Dist(x, y, signx * 10, signy * 10) <= 2.0) /*求点(x, y)与最近的塔心的距离*/

return 25

else 0

}

void main( )

{

double x, y

scanf("%lf%lf", &x, &y)

printf("high = %lf", GetHigh(x, y))

}

如果是锥状塔,将求高度的函数代码修改如下,其余的代码同上:

double GetHigh(double x, double y)

{

int signx = 1, signy = 1

double dist

if(x <0) signx = -1 /*先求点(x, y)所在象限*/

if(y <0) signy = -1

dist = Dist(x, y, signx * 10, signy * 10) /*求点(x, y)与最近的塔心的距离*/

if(dist <= 2.0)

return 25 * (2.0 - dist) / 2.0

else 0

}

#include<stdio.h>

#include<stdlib.h>

int main()

{

int a[3],i,t1=0,t2=0,t3=0

for(i=0i<3i++)

{

printf("请输入第%d门课的成绩:",i+1)

scanf("%d",&a[i])

if(a[i]>=80) ++t1

else if(a[i]<80&&a[i]>=70) ++t2

else if(a[i]<=60) ++t3

//printf("%d %d %d\n",t1,t2,t3)

}

if(t1==3) printf("成绩很好!!\n")

else if(t1>0&&t1+t2==3) printf("成绩好!!\n")

else if(t3>0) printf("不好!!\n")

system("pause")

return 0

}

这个实在DC上编译的程序!!!!!!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11586480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存