Ik heb de volgende functie om een soort driehoek te berekenen:
iA, iB en iC zijn waardes die voor deze functie worden ingevoerd.
naam1 = EQUILATERAL (alle zijdes gelijk)
naam2 = ISOSCELES (2 zijdes gelijk)
naam3 = SCALENE (geen van de zijdes gelijk)
naam4 = NOTRIANGLE (als iA of iB of iC hoger is dan de andere 2 opgeteld)
Als ik de getallen 3, 3 en 2 invoer kom ik op NOTRIANGLE uit. Dit zou ISOSCELES moeten zijn. 1, 1, 2 komt dan wel weer op ISOSCELES uit.
Weet iemand wat ik fout doe in deze functie?
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| int TriangleCheck(int iA, int iB, int iC); { if(iA==iB&&iB==iC&&iA==iC){ printf("%d\t%d\t%d\t%s" , iA, iB, iC, naam1); return 0; } if(iC!=iA==iB||iA!=iB==iC||iB!=iA==iC && (iC>=iA+iB)||(iA>=iB+iC)||(iB>=iA+iC)){ printf("%d\t%d\t%d\t%s", iA, iB, iC, naam2); return 0; } if(iA!=iB && iB!=iC && iA!=iC && (iC>=iA+iB)||(iA>=iB+iC)||(iB>=iA+iC)){ printf("%d\t%d\t%d\t%s", iA, iB, iC, naam3); return 0; } else{ printf("%d\t%d\t%d\t%s" , iA, iB, iC, naam4); return 0; } |
iA, iB en iC zijn waardes die voor deze functie worden ingevoerd.
naam1 = EQUILATERAL (alle zijdes gelijk)
naam2 = ISOSCELES (2 zijdes gelijk)
naam3 = SCALENE (geen van de zijdes gelijk)
naam4 = NOTRIANGLE (als iA of iB of iC hoger is dan de andere 2 opgeteld)
Als ik de getallen 3, 3 en 2 invoer kom ik op NOTRIANGLE uit. Dit zou ISOSCELES moeten zijn. 1, 1, 2 komt dan wel weer op ISOSCELES uit.
Weet iemand wat ik fout doe in deze functie?
[ Voor 0% gewijzigd door RobIII op 29-03-2007 15:38 . Reden: Code tags toegevoegd omdat TS dit zelf niet wil doen... ]