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上编译的程序!!!!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)