练习5-1 求m到n之和

本题要求实现一个计算m~nm<_n_)之间所有整数的和的简单函数。
函数接口定义:

  1. int sum( int m, int n );

其中mn是用户传入的参数,保证有m<_n_。函数返回的是_m_~_n_之间所有整数的和。
裁判测试程序样例:

  1. #include <stdio.h>
  2. int sum(int m, int n);
  3. int main() {
  4. int m, n;
  5. scanf("%d %d", &m, &n);
  6. printf("sum = %d\n", sum(m, n));
  7. return 0;
  8. }
  9. /* 你的代码将被嵌在这里 */

输入样例:

  1. -5 8

输出样例:

  1. sum = 21

解题思路:可枚举或等差数列求和即可。

  1. int sum(int m, int n) {
  2. return (m + n) * (n - m + 1) / 2;
  3. }

练习5-2 找两个数中最大者

本题要求对两个整数a和b,输出其中较大的数。
函数接口定义:

  1. int max( int a, int b );

其中ab是用户传入的参数,函数返回的是两者中较大的数。
裁判测试程序样例:

  1. #include <stdio.h>
  2. int max( int a, int b );
  3. int main()
  4. {
  5. int a, b;
  6. scanf("%d %d", &a, &b);
  7. printf("max = %d\n", max(a, b));
  8. return 0;
  9. }
  10. /* 你的代码将被嵌在这里 */

输入样例:

  1. -5 8

输出样例:

  1. max = 8

解题思路if 条件判断即可

  1. int max(int a, int b) {
  2. return a > b ? a : b;
  3. }

习题5-3 使用函数计算两点间的距离

本题要求实现一个函数,对给定平面任意两点坐标(_x_1,_y_1)和(_x_2,_y_2),求这两点之间的距离。
函数接口定义:**

  1. double dist( double x1, double y1, double x2, double y2 );

其中用户传入的参数为平面上两个点的坐标(x1, y1)和(x2, y2),函数dist应返回两点间的距离。
裁判测试程序样例:

  1. #include <stdio.h>
  2. #include <math.h>
  3. double dist( double x1, double y1, double x2, double y2 );
  4. int main()
  5. {
  6. double x1, y1, x2, y2;
  7. scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
  8. printf("dist = %.2f\n", dist(x1, y1, x2, y2));
  9. return 0;
  10. }
  11. /* 你的代码将被嵌在这里 */

输入样例:

  1. 10 10 200 100

输出样例:

  1. dist = 210.24

解题思路:使用两点距离公示即可。PTA函数—顺序 - 图1

  1. double dist( double x1, double y1, double x2, double y2 ) {
  2. return sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
  3. }
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