我需要执行此程序,该程序将两个三角形进行比较。
基本上,除了用户在其中输入初始数据的部分之外,其他所有东西都可以正常工作。我的主要问题是条件之一是用户可以输入三角形的三个边的长度或三个顶点的X,Y坐标。
我需要它像以下两种方式一样工作:
此输入意味着用户使用了边长:
{ 5 , 5 , 5 }
此输入意味着用户使用了顶点的X,Y坐标:
{ [ 1 ; 1 ] , [ 3 ; 1 ] , [ 2 ; 2 ] }
这是我尝试解决该问题的代码,但是由于某些原因,如果用户使用顶点输入第一个条件(该条件是否不是边长),则会使所有内容混乱。
#include <stdio.h>
int main() {
double a, b, c, A[2], B[2], C[2];
char s;
if(scanf(" { [ %lf ; %lf ] , [ %lf ; %lf ] , [ %lf ; %lf ] }%c",
&A[0], &A[1], &B[0], &B[1], &C[0], &C[1], &s) != 7 && s != '\n') {
s = ' ';
if(scanf(" { %lf , %lf , %lf }%c", &a, &b, &c, &s) != 4 && s != '\n') {
printf("error\n");
return 1;
}
}
// rest of the code...
printf("success\n");
return 0;
}
如果我交换这两个条件,它将切换并且仅当用户使用顶点输入时它才起作用...
是否有可能使它像这样简单地工作?
慕容708150
慕工程0101907
相关分类