第一次
C 语言大作业
姓名:胡灵萍
班级:机电 101
学号
第一题题目
编写一个程序,要求实现以下功能:输入两点坐标,求出对应直线的斜率。挑战下,要
是能判断出这条直线所在的象限,你很了不起。要求程序人机界面友好,操作使用方便。
提示:人机界面友好是指软件应包括软件作者、开发日期、版本号等,并且输出信息清晰,
一目了然;程序可通过按任意键退出程序,否则程序保 输出界面。按任意键可通过调用库
函数getch()实现。
1、编写思路说明
先输入两点坐标,根据两点坐标判断斜率是否存在,若斜率不存在,则根据x 轴坐标的
正负判断直线所在的象限。若斜率存在,则计算出斜率的大小和直线在y 轴上的截距,即式
子y=k*x+b 中的k 值与b 值,再根据k 与b 的正负判断直线所在的象限,最后输出结果为
直线的斜率和直线所在的象限。
2、C 源程序清单
#include
#include
main()
{
float x1,y 1,x2,y2,m;
float k,b;
char answer;
printf("\n\t\t\t\t 欢迎使用本程序\n");
printf("\n\t 本程序的功能是输入两点坐标求对应直线的斜率,并判断直线所在的象限\n");
printf("\n\t\t 作者:胡灵萍 开发日期:2012/3/ 15 版本号:01\n");
printf("\n 请输入两点坐标x1 y 1 x2 y2\n");
while(1)
{
scanf("%f%f%f%f",&x1,&y 1,&x2,&y2);
m=x2-x1;
if(m==0)
{
printf("斜率不存在\n");
if(x1>0)
printf("直线经过一、四象限\n");
else
if(x1==0)
printf("直线在y 轴上\n");
else
printf("直线经过二、三象限\n");
}
else
{
k=(y2-y 1)/m;
b=y 1-x 1*(y2-y 1)/m;
printf("斜率为%.2f\n",k);
if(k>0)
if(b>0)
printf("直线经过一、二、三象限\n");
else
if(b==0)
printf("直线经过一、三象限\n");
else
printf("直线经过一、三、四象限\n");
if(k<0)
if(b>0)
printf("直线经过一、二、四象限\n");
else
if(b==0)
printf("直线经过二、四象限\n");
else
printf("直线经过二、三、四象限\n");
if(k==0)
if(b>0)
printf("直线经过一、二象限\n");
else
if(b<0)
printf("直线经过三、四象限\n");
else