实验2 顺序及分支程序设计

1、分段计算居民水费

【问题描述】

为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(t)相关,函数关系如下:

请编写程序计算水费,用水量由键盘输入,结果保留2位小数。要求使用嵌套的if-else语句。

【输入形式】一个实型数据:月用水量
【输出形式】本月应支付水费
【样例输入】12.5
【样例输出】16.67

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	double x,y;
	scanf("%lf",&x);
	if(x==0)
	{
		y=0;
	}
	else if(0<x&&x<=15)
	{
		y=4.0*x/3.0;
	}
	else
	{
		y=2.5*x-17.5;
	}
	printf("%.2f\n",y);
	return 0;
}

 

2、三角形判断并求周长面积

【问题描述】

平面上已知坐标的任意三个点A(x1,y1)、B(x2,y2)、C(x3,y3),检验它们能否构成三角形。若不能,则输出“No”;若能,则输出其三角形的周长和面积。结果保留三位有效数字。

提示:先求出三边长,判断能否构成三角形;能,求出三角形周长和面积。面积用海伦公式

【输入形式】三个点的坐标

【输出形式】输出判断结果,若能构成三角形,则输出三角形的周长和面积

【样例输入】

0 0

2 3

4 5
【样例输出】

Yes,perimeter:12.837,area:1.000
【样例说明】

第二组测试样例

输入:

2 3

4 3

7 3

输出:

No,cannot form a triangle!

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	double x1,y1,x2,y2,x3,y3,p,d,s,a,b,c;
	scanf("%lf %lf",&x1,&y1);
	scanf("%lf %lf",&x2,&y2);
	scanf("%lf %lf",&x3,&y3);
	a=sqrt(pow(x2-x1,2)+pow(y2-y1,2));
	b=sqrt(pow(x3-x1,2)+pow(y3-y1,2));
	c=sqrt(pow(x3-x2,2)+pow(y3-y2,2));
	d=a+b+c;
	p=(a+b+c)/2.0;
	if(a+b>c&&a+c>b&&b+c>a)
	{
		s=sqrt(p*(p-a)*(p-b)*(p-c));
		printf("Yes,perimeter:%.3f,area:%.3f\n",d,s);
	}
	else
	{
		printf("No,cannot form a triangle!\n");
	}
	return 0;
}

3、编程:打鱼?晒网?

【问题描述】

中国有句俗语叫“三天打鱼两天晒网”。某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第n天是打鱼还是晒网?n从键盘输入。

提示:分析“三天打鱼两天晒网”的周期,第1天开始打鱼
【输入形式】一个整数:天数
【输出形式】该人在该天是在打鱼还是晒网
【样例输入】56
【样例输出】fishing

【样例说明】

第二组测试样例

输入:129

输出:dry the nets

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	int n,a;
	scanf("%d",&n);
	a=n%5;
	if(a>=1&&a<=3)
		printf("fishing\n");
	else
		printf("dry the nets\n");
	return 0;
}

4、大小写转换

【问题描述】从键盘输入一个字符,若为大写英文字母,则将其转换为小写英文字母,否则不转换,输出最后得到的字符及其十进制ASCII码值。
【输入形式】一个字符
【输出形式】字符及其十进制ASCII值
【样例输入】A
【样例输出】a,97

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	char x;
	scanf("%c",&x);
	if (x>=65&&x<=90)
		x=x+32;
	printf("%c,%d\n",x,x);
	return 0;
}

5、计算还款月数

【问题描述】

购房时从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。结果保留整数。d, p, r从键盘输入

提示:计算还清月数的公式如下:

说明:C库函数中有求对数的函数log10,表示以10为底的对数,log10(p)表示lgp

【输入形式】输入贷款额、每月还款额及月利率
【输出形式】还款月数(整数,不足一个月按一个月算)

【样例输入】300000 6000 0.01

【样例输出】70

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	double d,p,r;
	int m;
	scanf("%lf %lf %lf",&d,&p,&r);
	m=log10(p/(p-d*r))/log10(1+r)+1;
	printf("%d\n",m);
	return 0;
}

 

6、编程求表达式的值

【问题描述】

 

【输入形式】一个双精度实型数据x
【输出形式】表达式求值结果
【样例输入】1.5
【样例输出】2.159866

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	double x,y,PI=3.1415926;
	scanf("%lf",&x);
	y=1.0/2.0*sin(PI/7.2)+x*x*cos(PI/6.0);
	printf("%f\n",y);
	return 0;
}

 

7、求表达式的值——系统函数的使用

【问题描述】

【输入形式】两个实数,x、y的值
【输出形式】表达式的结果
【样例输入】1.5 2.8

【样例输出】-85.852549

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	double x,y,z;
	scanf("%lf %lf",&x,&y);
	z=sqrt(x+2*y)-exp(3*x)+fabs(x);
	printf("%f\n",z);
	return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

꧁༺❀氯ྀൢ躅ྀൢ❀༻꧂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值