6-13 线段中点

来源

暂无

问题描述

现有结构体定义如下:

struct point{
    double x;        // 点的x坐标 
    double y;        // 点的y坐标 
};
typedef struct point Point;

编写2个C语言函数:input_point( )和middle( )。

  • 函数input_point( )的功能是从键盘读入2个点的坐标分别保存到指针a和b所指向的Point类型的变量。
  • 函数middle( )的功能是计算以点a和点b为端点的线段ab的中点的坐标保存到Point类型的变量,并作为返回值返回。该函数不允许从键盘读取数据,也不允许输出数据到屏幕。

函数接口定义:

void input_point(Point * a, Point * b);
Point middle(Point a, Point b);

裁判测试程序样例:

#include <stdio.h>
#include <math.h>
struct point{
    double x;        // 点的x坐标 
    double y;        // 点的y坐标 
};
typedef struct point Point;
void input_point(Point * a, Point * b);
Point middle(Point a, Point b);
int main()
{
    Point a;        // 点a
    Point b;        // 点b
    Point m;     // 线段ab的中点 
    input_point(&a, &b);
    m = middle(a, b);
    printf("%f %f", m.x, m.y);
    return 0;
}

// 你编写的代码将被嵌在这里

输入格式

一共2行数据:
第1行包含点a的x坐标和y坐标,之间使用空格分隔;
第2行包含点b的x坐标和y坐标,之间使用空格分隔。

输出格式:

数据规模与约定

x坐标的值约定为 -100 000 ≤ x ≤ 100 000。
y坐标的值约定为 -100 000 ≤ y ≤ 100 000。

输入样例:

1.2  3.4
5.6  7.8

输出样例:

3.400000 5.600000
代码长度限制		16 KB
时间限制			400 ms
内存限制			64 MB

参考代码:

void input_point(Point * a, Point * b)
{
	scanf("%lf %lf",&a->x, &a->y);
	scanf("%lf %lf",&b->x, &b->y);
}
Point middle(Point a, Point b)
{
	Point m;
	m.x=(a.x+b.x)/2;
	m.y=(a.y+b.y)/2;
	return m;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值