ZZULIOJ 1010~1019(oj入门题)

本文介绍了ZZULIOJ在线判题系统的1010~1019题,涵盖了圆的周长和面积、圆柱体表面积、绝对值计算、两点间距离、三角形面积、时间间隔、银行利率、正整数位数判断、奇偶数判断以及公园门票计费等基础数学和几何问题的解题思路和C语言实现代码。

ZZULIOJ 1010: 求圆的周长和面积

时间限制: 1 Sec 内存限制: 30 MB

题目描述

输入圆的半径,求圆的周长和面积。 要求定义圆周率为如下宏常量
#define PI 3.14159

输入

输入半径r的值,为一实数。

输出

输出一行,包括周长和面积。数据之间用一个空格隔开,数据保留小数后面两位。
样例输入 Copy
3
样例输出 Copy
18.85 28.27

代码:

#define PI 3.14159
#include<stdio.h>
int main()
{
	double r;//浮点型的用double好一点,float有时候oj不能通过
	scanf("%lf", &r);
	double d = 2 * PI * r;
	double s = PI * r * r;
	printf("%.2lf %.2lf\n", d, s);//C语言保留小数点的格式
	return 0;
}

ZZULIOJ 1011: 圆柱体表面积

时间限制: 1 Sec 内存限制: 30 MB

题目描述

输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上。要求定义圆周率为如下宏常量
#define PI 3.14159

输入

输入两个实数,为圆柱体的底面半径r和高h。

输出

输出一个实数,即圆柱体的表面积,保留2位小数。

样例输入 Copy
42.1 71.6
样例输出 Copy
30076.14

代码:

#define PI 3.14159
#include<stdio.h>
int main()
{
	double r, h, s;
	scanf("%lf %lf", &r, &h);
	s = PI * r * r * 2 + 2 * PI * r * h;
	printf("%.2lf\n", s);
	return 0;
}

ZZULIOJ1012: 求绝对值

时间限制: 1 Sec 内存限制: 30 MB

题目描述

求实数的绝对值。

输入

输入一个实数。

输出

输出它的绝对值,结果保留两位小数

样例输入 Copy
-234.00
样例输出 Copy
234.00

代码:

#include<stdio.h>
int main()
{
	double num;
	scanf("%lf", &num);
	if(num < 0)
		num = - num;
	printf("%.2lf\n", num);
	return 0;	
} 

ZZULIOJ 1013: 求两点间距离

时间限制: 1 Sec 内存限制: 30 MB

题目描述

给定A(x1, y1), B(x2, y2)两点坐标,计算它们间的距离。

输入

输入包含四个实数x1, y1, x2, y2,分别用空格隔开,含义如描述。其中0≤x1,x2,y1,y2≤100。

输出

输出占一行,包含一个实数d,表示A, B两点间的距离。结果保留两位小数。

样例输入 Copy
1 1 2 2
样例输出 Copy
1.41

代码:

#include<stdio.h>
#include<math.h>
int main()
{
	double x1, y1, x2, y2, d;
	scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
	d = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 -y1));
	printf("%.2lf\n", d);
	return 0;
}

ZZULIOJ 1014: 求三角形的面积

时间限制: 1 Sec 内存限制: 30 MB

题目描述

给出三角形的三条边,求三角形的面积。

输入

输入三角形的三条边长(实数),数据之间用空格隔开。

输出

输出三角形的面积,结果保留2位小数。

样例输入 Copy
2.5 4 5
样例输出 Copy
4.95

代码:

//海伦公式:S=√[p(p-a)(p-b)(p-c)]
//p=(a+b+c)/2
#include<stdio.h>
#include<math.h>
int main()
{
	double a, b, c, p, s;
	scanf("%lf %lf %lf", &a, &b, &c);
	p = (a + b + c) / 2;
	s = sqrt(p * (p - a) * (p - b) * (p - c));
	printf("%.2lf\n", s);
	return 0;
	
}

ZZULIOJ 1015: 计算时间间隔

时间限制: 1 Sec 内存限制: 30 MB

题目描述

读入两个用“时:分:秒”表示的时间点,计算以秒为单位的时间间隔。

输入

输入有两行,每行是一个用“时:分:秒”表示的时间点。测试数据保证第二个时间点晚于第一个时间点。

输出

输出一个整数,表示时间间隔的秒数。

样例输入 Copy
08:00:00
09:00:00

样例输出 Copy
3600

代码:

//scanf函数中若有普通字符,在输入数据是也要按照scanf里面的格式
//输入数据,否则输出结果会错误
#include<stdio.h>
int main()
{
	int hour1, minute1, second1;
	int hour2, minute2, second2;
	scanf("%d:%d:%d", &hour1, &minute1, &second1);
	scanf("%d:%d:%d", &hour2, &minute2, &second2);
	int interval1 = (hour2 - hour1) * 3600;
	int interval2 = (minute2 - minute1) * 60;
	int interval3 = second2 - second1;
	int interval = interval1 + interval2 + interval3;
	printf("%d\n", interval);
	return 0;
}

ZZULIOJ 1016: 银行利率

时间限制: 1 Sec 内存限制: 30 MB

题目描述

设银行1年期定期存款年利率为2.25%,存款本金为deposit元,试编程计算并输出n年后的本利之和。

输入

输入一个正整数和一个实数,分别代表存款年数和存款本金。

输出

输出一个双精度实数,小数点后保留6位有效数字。

样例输入 Copy
2 100
样例输出 Copy
104.550625

代码:

//也可以调用#include<math.h>里面的幂函数来做
#include<stdio.h>
int main()
{
	int n;
	double doposit;
	scanf("%d %lf", &n, &doposit);
	for(int i = 1; i <= n; i++)
	{
		doposit = doposit * 1.0225;
	}
	printf("%.6lf\n", doposit);
	return 0;
}

ZZULIOJ 1017: 判断正整数位数

时间限制: 1 Sec 内存限制: 128 MB

题目描述

给定一个不多于5位的正整数,判断它是几位数,并输出。

输入

一个不多于5位的正整数。

输出

输出正整数的位数,单独占一行。
样例输入 Copy
111
样例输出 Copy
3

代码:

//用的是最笨的方法
#include<stdio.h>
int main()
{
	int num;
	scanf("%d", &num);
	if(num > 0 && num < 10)
		printf("1\n");
	else if(num >= 10 && num < 100)
		printf("2\n");
	else if(num >= 100 && num < 1000)
		printf("3\n");
	else if(num >= 1000 && num <10000)
		printf("4\n");
	else
		printf("5\n");
	return 0;
}

ZZULIOJ 1018: 奇数偶数

时间限制: 1 Sec 内存限制: 30 MB

题目描述

输入一个整数,判断该数是奇数还是偶数。

输入

输入整数n。

输出

如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。
样例输入 Copy
8
样例输出 Copy
even

代码:

#include<stdio.h>
int main()
{
	int n;
	scanf("%d", &n);
	if(n % 2 == 0)
		printf("even\n");
	else
		printf("odd\n");
	return 0;
}

ZZULIOJ 1019: 公园门票

时间限制: 1 Sec 内存限制: 30 MB

题目描述

某公园门票的票价是每人50元,一次购票满30张,每张可以少收2元。试编写自动计费系统程序。

输入

输入一个正整数,表示购票的数量。

输出

输出一个整数,表示用户实际需要支付的金额。
样例输入 Copy
30
样例输出 Copy
1440

代码:

#include<stdio.h>
int main()
{
	int n;
	scanf("%d", &n);
	if(n < 30)
		printf("%d\n", 50 * n);
	else
		printf("%d\n", 48 * n);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值