C语言 选择结构程序设计

实验三 选择结构程序设计
实验学时:
2 学时
实验目的:
1.掌握关系表达式和逻辑表达式的使用。
2. 熟练掌握 if 语句、嵌套的 if 语句和 switch 语句。
3. 掌握 break 语句的作用。
4.掌握使用断点调试程序的方法。
实验条件:
PC 计算机,Windows7 或 Windows10 操作系统,Office2010 及以上版本,
Dev-C++5.11 及以上版本或 Code Blocks16.01 及以上版本。
实验内容
1.程序调试
计算 f(x)的值,输入 x,计算并输出下列分段函数
f(x)的值(保留 1 位小数)。

源程序(有错误):

#include<stdio.h> 
int main() 
{ 
	double x,y; 
	printf("Enter x:"); 
	scanf("%lf", x); 
	if(x!=0) {y=1/x 
} 
else { 
	y=0; 
} 
printf("f(%.2f) = %.1f\n", x,y); 
return 0; 
} 

2.基础编程
(1)身高预测
每个做父母的都关心自己孩子成人后的身高,根据有关生理卫生知识和数理
统计分析表明,影响小孩成人后身高的因素包括遗传、饮食习惯与体育锻炼等。
小孩成人后的身高与其父母身高和自身的性别密切相关。
设 faHeight 为父亲身高,moHeitht 为母亲身高,则身高预测公式为:
男性成人时身高=(faHeight+moHeitht)x0.54cm
女性成人时身高=(faHeight x 0.923+moHeitht)/2 cm
此外,若喜欢体育锻炼,则可增加身高 2%;若有良好的卫生饮食习惯,则
可增加身高 1.5%。
请编程从键盘读入用户的性别(用字符型变量 sex 存储,输入字母 F 表示女
性,输入字符 M 表示男性)、父母身高(用实型变量存储,faHeight 为父亲身高,
moHeitht 为母亲身高)、是否喜爱体育锻炼(用字符型变量 sports 存储,输入字
母 Y 表示喜爱,输入字符 N 表示不喜爱),是否有良好的饮食习惯(用字符型变
量 diet 存储,输入字母 Y 表示良好,输入字符 N 表示不好)等条件,利用给定
的公式和身高预测方法对身高进行预测。

#include<stdio.h> 
#include<math.h> 
int main() 
{ 
	float moHeight,faHeight,myHeight;//定义母亲的身高,父亲的身高,自己的身高 
	char sex,sports,diet;//定义字符串性别,运动,饮食卫生习惯 
	printf("你是一个男孩(M)还是一个女孩(F)"); 
	scanf(" %c", &sex);//输入性别 
	printf("是否喜欢运动,喜欢(Y)不喜欢(N)"); 
	scanf(" %c", &sports);//输入是否喜欢运动 
	printf("是否有良好的卫生饮食习惯,有(Y),没有(N)");
	scanf(" %c", &diet);//输入是否有良好的卫生饮食习惯 
	printf("父亲身高(cm),母亲身高(cm)"); 
	scanf("%f %f",&faHeight,&moHeight);//输入父亲,母亲的身高 
	if(sex=='M'||sex=='m')//如果是男生 
{ 
		myHeight=(faHeight+moHeight)*0.54;//则有自己的身高为 
} 
	else 
{ 
	myHeight=(faHeight+moHeight)/2;//否则自己的身高为 
} 
	if(sports=='Y'||sports=='y')//如果喜欢运动 
{ 
		myHeight=(1+0.02)*myHeight;//则身高为 
} 
	if(diet=='Y'||diet=='y')//如果有良好的卫生饮食习惯 
{ 
		myHeight=(1+0.015)*myHeight;//则身高为 
} 
	printf("你的预测身高为:%f",myHeight);//输出你的预测身高 
	return 0; 
} 

在这里插入图片描述

2.体型判断
医务工作者经过广泛的调查和统计分析,根据身高与体重因素给出了以下按
“体指数”进行体型判断的方法:
体指数 t=体重 w/(身高 h)2 (w 单位为千克,h 单位为米)
当 t<18 时,为低体重;
当 t 介于 18 和 25 之间时,为正常体重;
当 t 介于 25 和 27 之间时,为超重体重;
当 t≥27 时,为肥胖分别使用 if 语句和 if-else 语句编程,从键盘输入体重 w 和身高 h,根据给定
的上述公式计算体指数 t,然后判断你的体重属于何种类型。

#include<stdio.h> 
#include<math.h> 
int main() 
{ 
	double t,w,h;//定义 t,w,h 
	printf("input 体重(kg) 身高(m)");//请输入体重和身高 
	scanf("%lf %lf",&w,&h);//输入 w,h 的值 
	t=w/(h*h);//求 t 
	printf("%lf\n",t); 
	if(t<18) 
{ 
		printf("低体重"); 
}//如果 t 小于 18 则为低体重 
	if(18<=t&&t<25) 
{ 
		printf("正常体重"); 
}//如果 t 大于等于 18 小于 25 则为正常体重 
	if(25<=t&&t<27) 
{ 
		printf("超重体重"); 
}//如果 t 大于等于 25 小于 27 则为超重体重 
	if(t>=27) 
{ 
		printf("肥胖"); 
}//如果 t 大于等于 27 则为肥胖体重 
	return 0; 
} 

在这里插入图片描述

#include<stdio.h> 
#include<math.h> 
int main(){ 
	double t,w,h;//定义 t,w,h 变量 
	printf("input 体重(kg) 身高(m)"); //请输入体重和身高 
	scanf("%lf %lf",&w,&h);//输入体重和身高 
	t=w/(h*h);//用体重和身高计算 t 
	printf("%lf\n",t);//输出 t 的值 
	if(t<18) 
{ 
		printf("低体重"); 
}//如果 t 小于 18 则输出低体重 
	else if(t<25) 
{ 
		printf("正常体重"); 
}//如果 t 小于 25 大于等于 18 则输出正常体重 
	else if(t<27) 
{ 
		printf("超重体重"); 
} //如果 t 小于 27 大于等于 25 则输出超重体重 
	else if(t>27) 
{ 
		printf("肥胖"); 
}//如果 t 大于等于 27 则输出肥胖 
	return 0;//结束指令 
} 

在这里插入图片描述

3.个人所得税计算
假设个人所得税为:税率 x (收入-1600)。请编写程序计算应缴的所得税,
其中税率定义为:
收入不超过 1600 时,税率为 0;
当收入位于(1600, 2500]时,税率为 5%;
当收入位于(2500, 3500]时,税率为 10%;
当收入位于(3500, 4500]时,税率为 15%;
当收入大于 4500 时,税率为 20%。

#include<stdio.h> 
#include<math.h> 
int main() 
{ 
	double x,y,z;//定义税率 x,本金 y,税金 z 
	scanf("%lf",&y);//输入本金 y 
	if(y<=1600) 
{ 
		z=0; 
		printf("z=0.00"); 
}//如果 y 小于等于 1600 则税率为 x 
	if(1600<y&&y<=2500) 
{ 
		z=(y-1600)*0.05; 
		printf("%.2lf",z); 
}//如果 y 大于 1600 且小于等于 2500 则税率为 0.05 
	if(2500<y&&y<=3500) 
{ 
		z=(y-1600)*0.10; 
		printf("%.2lf",z); 
}//如果 y 小于等于 3500 且大于 2500 则税率为 0.10 
	if(3500<y&&y<=4500) 
{ 
		z=(y-1600)*0.15; 
		printf("%.2lf",z); 
}//如果 y 大于 3500 且小于等于 4500 则税率为 0.15 
	if(y>4500) 
{ 
		z=(y-1600)*0.20; 
		printf("%.2lf",z); 
}//如果 y 大于 4500 则税率为 0.20 
	return 0; 
}

在这里插入图片描述

反思与总结
掌握关系表达式和逻辑表达式的使用。熟练掌握 if 语句、嵌套的 if 语句和 switch
语句。掌握 break 语句的作用。掌握使用断点调试程序的方法。
注意地址符的使用&

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在博弈论中,有一种决策称为Best Response,通俗的意思就是选择一种策略使得团体利益最大化。C语言学习成绩的评定方式分为两种,一种是自由刷题模式(compete),没有固定标准,刷题越多者排名越靠前,其期末分数越高;另一种是规定每个人必须做够多少道题(standard),达到要求就能取得相应分数。 假设一个班级中的学生分为A、B两类,A类同学学习热情很高,乐于做题,采用compete模式可以获得成就感并且在期末拿到高分,compete模式可以让他们有10分的收益;采用standard模式他们也可以在期末拿到高分,但不能满足他们的求知欲,standard模式可以让他们有8分的收益。B类同学仅仅希望期末拿高分,如果采用compete模式,他们竞争不过A类同学,期末成绩不理想,因此compete模式能给他们6分的收益;如果采用standard模式,他们可以完成规定任务并拿到高分,因此standard模式可以让他们有10分的收益。 编程输入A类和B类同学分别占班级总人数的百分比,分别计算并输出采用compete和standard两种刷题模式下的全班总收益,并输出这个班级在这场博弈中的Best Response是哪种模式。 【注】程序中使用的数据类型为float 程序运行结果示例1: Input percent of A and B:0.2 0.8↙ compete = 6.8000 standard = 9.6000 The Best Response is standard! 程序运行结果示例2: Input percent of A and B:0.8 0.2↙ compete = 9.2000 standard = 8.4000 The Best Response is compete! 程序运行结果示例3: Input percent of A and B:0.5 0.5↙ compete = 8.0000 standard = 9.0000 The Best Response is standard! 输入提示信息:"Input percent of A and B:" 输入格式:"%f%f" 输出格式:"compete = %.4f\nstandard = %.4f\n" 输出提示信息:"The Best Response is compete!" 输出提示信息:"The Best Response is standard!"

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xlorb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值