练习5-1 求m到n之和
本题要求实现一个计算m~n(m<_n_)之间所有整数的和的简单函数。
函数接口定义:
int sum( int m, int n );
其中m和n是用户传入的参数,保证有m<_n_。函数返回的是_m_~_n_之间所有整数的和。
裁判测试程序样例:
#include <stdio.h>int sum(int m, int n);int main() {int m, n;scanf("%d %d", &m, &n);printf("sum = %d\n", sum(m, n));return 0;}/* 你的代码将被嵌在这里 */
输入样例:
-5 8
输出样例:
sum = 21
解题思路:可枚举或等差数列求和即可。
int sum(int m, int n) {return (m + n) * (n - m + 1) / 2;}
练习5-2 找两个数中最大者
本题要求对两个整数a和b,输出其中较大的数。
函数接口定义:
int max( int a, int b );
其中a和b是用户传入的参数,函数返回的是两者中较大的数。
裁判测试程序样例:
#include <stdio.h>int max( int a, int b );int main(){int a, b;scanf("%d %d", &a, &b);printf("max = %d\n", max(a, b));return 0;}/* 你的代码将被嵌在这里 */
输入样例:
-5 8
输出样例:
max = 8
解题思路:if 条件判断即可
int max(int a, int b) {return a > b ? a : b;}
习题5-3 使用函数计算两点间的距离
本题要求实现一个函数,对给定平面任意两点坐标(_x_1,_y_1)和(_x_2,_y_2),求这两点之间的距离。
函数接口定义:**
double dist( double x1, double y1, double x2, double y2 );
其中用户传入的参数为平面上两个点的坐标(x1, y1)和(x2, y2),函数dist应返回两点间的距离。
裁判测试程序样例:
#include <stdio.h>#include <math.h>double dist( double x1, double y1, double x2, double y2 );int main(){double x1, y1, x2, y2;scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);printf("dist = %.2f\n", dist(x1, y1, x2, y2));return 0;}/* 你的代码将被嵌在这里 */
输入样例:
10 10 200 100
输出样例:
dist = 210.24
解题思路:使用两点距离公示即可。
double dist( double x1, double y1, double x2, double y2 ) {return sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));}
| Case | Hint | Result | Score | Run Time | Memory |
|---|---|---|---|---|---|
| 0 | sample等价,全正数 | Accepted | 6 | 4 ms | 256 KB |
| 1 | 有正负,非整数 | Accepted | 2 | 4 ms | 296 KB |
| 2 | 两点重合 | Accepted | 1 | 4 ms | 296 KB |
| 3 | 全0 | Accepted | 1 | 4 ms | 232 KB |
