OpenJudge百炼习题解答(C++)--题4072:判断多个点是否在同一直线
2016-02-22 20:56
302 查看
题:
总时间限制: 1000ms 内存限制: 65536kB描述
有N(1<=n<=100)< span="">个互不重合的点,并给出它们的坐标(xi,yi),问这些点是否在同一直线上。
输入第一行是测试的组数T(1<=T<=100),其后是T组数据,每组数据第一行是该组数据点的数量N,后面跟着N行,每行代表一点的坐标,由两个数字构成,这两个数字之间由空格隔开。
输出有T行,每行对应输入的一组数据,如果该组数据中的点在同一直线上,则该行输出True,否则输出False。
样例输入
1 3 0 0 2 2 1 1
样例输出
True
解:
#include<iostream> #include<stdio.h> using namespace std; int main() { int T; cin>>T; int True[T]; double a[T][1000]; double b[T][1000]; int c[T]; for(int i=0;i<T;i++) { cin>>c[i]; for(int j=0;j<c[i];j++) { cin>>a[i][j]>>b[i][j]; } } for(int i=0;i<T;i++) { True[i]=1; for(int h=1;h<c[i];h++) { if(c[i]>2&&(b[i][1]-b[i][0])*(a[i][h]-a[i][0])!=(b[i][h]-b[i][0])*(a[i][1]-a[i][0])){ True[i]=0; // cout<<a[i][0]*b[i][h]<<"and"<<a[i][h]*b[i][0]<<endl; break; } } if(True[i]==1) { cout<<"True"<<endl; } else { cout<<"False"<<endl; } } return 0; }
相关文章推荐
- OpenJudge百炼习题解答(C++)--题4074:积水量
- OpenJudge百炼习题解答(C++)--题4045:与3和5无关的数
- 程序员面试题精选100题(08)-求1+2+...+n[C/C++/C#]
- OpenJudge百炼习题解答(C++)--题4040:买书问题
- Eclipse c/c++编译链接失败解决方法
- OpenJudge百炼习题解答(C++)--题4022:买房子
- OpenJudge百炼习题解答(C++)--题4010:2011
- C/C++列举目录下的文件列表
- OpenJudge百炼习题解答(C++)--题4085:数组去重排序
- 怎么样才算是精通 C++?
- 怎么样才算是精通 C++?
- C++ primer阅读笔记之标准库String类型学习
- c++ vector的用法
- C++11和Boost库
- C++11和Boost库
- c++中换行\n和endl的区别
- C语言学习-vs2013编译器问题
- C++ vector.data()
- c++ 排序算法总结
- c++ 排序算法总结