【发布时间】:2013-11-26 13:49:04
【问题描述】:
我被要求存储和绘制一系列线段。 如果输入负坐标或输入了 2x MAXSEGMENTS 段,则程序应在终止前打印消息“无交叉点”或“找到交叉点”(视情况而定)。
int main(void) {
lineSeg_t line, allsegments[MAXSEGMENTS];
point_t a, b;
int pointssofar=0, i, v, w, x, y;
OpenGraphics();
while (pointssofar<=(2*MAXSEGMENTS)){
a=GetPoint();
x=XCoord(a);
y=YCoord(a);
if ((x<0)||(y<0))
break;
b=GetPoint();
v=XCoord(b);
w=YCoord(b);
if ((v<0)||(w<0))
break;
line=LineSeg(a, b);
DrawLineSeg(line);
allsegments[((pointssofar+2)/2)]=line;
for (i=0;i<(pointssofar/2);i++){
if (intersect(line, allsegments[i])==TRUE){
printf ("Found an intersection");
pointssofar=2*MAXSEGMENTS;
} else if (pointssofar==(2*MAXSEGMENTS)){
printf("No intersection");
}
}
}
for(i=0;i<(pointssofar/2);i++){
if (intersect(allsegments[pointssofar/2], allsegments[i])==FALSE){
printf("No intersection");
}
}
}
我无法输出消息。认为我被困在 while 循环中,我真的不知道如何出去! 提前谢谢你。
【问题讨论】:
-
这样如果输入负坐标,它就会退出 while 循环。 (休息)
-
我有一个 decartes.h 头文件,如果这就是你的意思吗?
-
这是我的讲师写的,不幸的是我不知道如何访问它。我过去曾使用过它,但它确实有效。他们确实返回负数
标签: c if-statement for-loop while-loop