admin 管理员组

文章数量: 887021


2024年2月21日发(作者:pull weight)

实验2 选择结构编程练习

一:实验目的

1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”);

2.学会正确使用关系运算符、逻辑运算符和逻辑表达式;

3.熟练掌握if语句和switch语句;

4.结合程序掌握一些简单的算法;

5.学习调式程序。

二:实验过程:(请将代码写在题目后,并将运行测试结果截图)

1.身高预测

每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。

设faHeight为其父身高,moHeight为其母身高,身高预测公式为

男性成人时身高=(faHeight + moHeight)×0.54cm

女性成人时身高=(faHeight×0.923 + moHeight)/2cm

此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。

编程要求:从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好),利用给定公式和身高预测方法对身高进行预测。

#include

void main()

{

char sport,diet;

double faheight,moheight,boyhight,girlhight;

printf("请输入父亲身高(cm)");

scanf("%lf",&faheight);

printf("请输入母亲身高(cm)");

scanf("%lf",&moheight);

printf("是否喜爱体育锻炼(Y OR N)");

scanf("%c",&sport);

printf("是否饮食健康(Y OR N)");

scanf("%c",&diet);

boyhight=( faheight+moheight)*0.54;

girlhight=( faheight *0.923+moheight)/2;

if(diet=='Y'&&sport=='Y')

{

boyhight=boyhight*1.02*1.015;

girlhight=girlhight*1.02*1.015;

}

if(diet=='Y' && sport=='N')

{

boyhight=boyhight*1.015;

girlhight=girlhight*1.015;

}

if(diet=='N' && sport=='Y')

{

boyhight=boyhight*1.02;

girlhight=girlhight*1.02;

}

if(diet=='N' && sport=='N')

{

boyhight=boyhight;

girlhight=girlhight;

}

printf("boyhight=%lf,girlhight=%lf", boyhight,girlhight);

}

2. 简单的计算器

用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:

操作数1 运算符op 操作数2

计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。

本实验程序是在例4.7的基础上,增加如下要求:

(1)如果要求程序能进行浮点数的算术运算,程序应该如何修改?如何比较实型变量data2和常数0是否相等?

(2)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空白符,那么程序如何修改?

(3)(选作题)如果要求连续做多次算术运算,每次运算结束后,程序都给出提示:

Do you want to continue(Y/N or y/n)?

用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。那么,程序如何修改?

(提示:阅读教材P75例4.5-P79再开始

 语句 if (0 == data2)的必要性

– 1998年11月《科学美国人》杂志,描述了美国导弹巡洋舰约克敦号上的一起事故,除零错导致军舰推进系统的关闭(阅读P77开头部分内容)

 如果要求程序能进行浮点数的算术运算,语句 if (0 == data2)还能用于比较实型变量data2和常数0的大小吗?

– if (fabs(data2) <= 1e-7)

 如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符,那么程序如何修改?

– scanf("%d%c%d", &data1, &op, &data2);

– scanf("%d%1s%d", &data1, &op, &data2);)

三、实验总结(含注意事项总结、心得体会等)


本文标签: 身高 程序 输入 算术 要求