目前为止你看到了很多程序例子,也在它们的基础上做了很多改动,在这个过程中巩固所学的知识。但是如果从头开始编写一个程序解决某个问题,应该按什么步骤来写呢?本节提出一种增量式(Incremental)开发的思路,很适合初学者。
现在问题来了:我们要编一个程序求平面上的圆的面积,圆的半径以两个端点的座标(x1, y1)和(x2, y2)给出。首先分析和分解问题,把大问题分解成小问题,再对小问题分别求解。这个问题可分为两步:
由两端点座标求半径的长度,我们知道平面上两点间距离的公式是:
distance = √((x2-x1)2+(y2-y1)2)
括号里的部分都可以用我们学过的C语言表达式来表示,求平方根可以用math.h中的sqrt函数,因此这个小问题全部都可以用我们学过的知识解决。这个公式可以实现为一个函数,参数是两点的座标,返回值是distance。
上一步算出的距离是圆的半径,已知圆的半径之后求面积的公式是:
area = π·radius2
也可以用我们学过的C语言表达式来解决,这个公式也可以实现为一个函数,参数是radius,返回值是area。
首先编写distance这个函数,我们已经明确了它的参数是两点的座标,返回值是两点间距离,可以先写一个简单的函数定义:
#include <math.h>
#include <stdio.h>
double distance(dou