我现在正在编一段程序,是求两两个点之间的斜率。我想用循环来做,但是不知道怎么做。举一个例子:比如说有4个点,那么我就要求1,2点的斜率,1,3点的斜率;1,4点的,2,3点的,2,4点的,3,4点的。请问这样该如何去求呢?
-
近期文章
近期评论
- coolker 发表在《打造最快的Hash表》
- struggle 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- diys 发表在《C语言编程宝典(王大刚) 1.1 C 语言的产生与发展》
文章归档
- 2022 年十月
- 2014 年一月
- 2013 年十二月
- 2012 年十一月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十月
- 2011 年九月
- 2011 年八月
- 2011 年七月
- 2011 年六月
- 2011 年五月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年七月
- 2010 年六月
- 2010 年五月
- 2010 年四月
- 2010 年三月
- 2010 年二月
- 2010 年一月
- 2009 年十二月
- 2009 年十一月
- 2009 年十月
- 2009 年九月
- 2009 年八月
- 2009 年七月
- 2009 年六月
- 2009 年五月
- 2009 年四月
- 2009 年三月
- 2009 年二月
- 2009 年一月
- 2008 年十二月
- 2008 年十一月
- 2008 年十月
- 2008 年九月
- 2008 年八月
- 2008 年七月
- 2008 年六月
- 2008 年五月
- 2008 年四月
- 2008 年三月
- 2008 年二月
- 2008 年一月
- 2007 年十二月
- 2007 年十一月
- 2007 年十月
- 2007 年九月
- 2007 年八月
- 2007 年七月
- 2007 年六月
- 2007 年三月
- 2007 年二月
- 2007 年一月
- 2006 年十二月
- 2006 年十一月
- 2006 年十月
- 2006 年九月
- 2006 年八月
- 2006 年七月
- 2006 年六月
- 2006 年五月
- 2006 年四月
- 2006 年三月
- 2006 年二月
- 2006 年一月
- 2005 年十二月
- 2005 年十一月
分类目录
功能
要么定义一个数组a[8],把4个点都输入数组中,然后再循环求各个斜率;
要么定义8个变量,接受4个点的数据,循环求斜率。
其实不止这两种方法。
我就是不知道这个循环应该怎么编写,还麻烦你能说的详细一点,或者帮我编写一下,辛苦了!
#include “stdio.h”
int main()
{
float a[8];
int i,j;
clrscr(); /*清屏函数*/
for(i=0;i<8;i++)
scanf(“%f”,&a[i]); /*点输入格式为 x y*/
for(i=0;i<6;i=i+2)
for(j=6;j>=i+2;j=j-2)
printf(“%f “,(a[i+1]-a[j+1])/(a[i]-a[j]));
return 0;
}
第一个循环我明白,但是第二个循环我不懂,可不可以麻烦你讲一下?
晕,简单说一下吧。
输入的4个点共8个数据,放到数组a[8]中。
a[0]和a[1]为第一个点,a[2]和a[3]为第二个点,a[4]和a[5]为第三个点,a[6]和a[7]为第四个点。
i=0时,j循环三次,分别输出点1,2、1,3、1,4的斜率。
i=2时,j循环两次,分别输出点2,3、2,4的斜率。
i=5时,j循环一次,输出点3,4的斜率。
实在不懂的话拿笔画图分析一下吧。
还是定义一个结构吧:
struct point {
int x;
int y;
} POINT;
而且应该考虑 N个点的问题 :
设计两个函数
一个函数:
void slope(POINT a, POINT b) ; 计算a,b的斜率, 略;
另一个,计算N个点的斜率 (调用上一个函数)
void nslopes(POINT s[], int n)
{
int i, j ;
if (n<2) return;
for (i=0,j=i+1;i<n-1;i++)
slope(s[i],s[j]);
}
确实不错,比我的那个效率高多了。