iPhone SDK数学 - 毕达哥拉斯定理问题!

Fla*_*la2 0 iphone math pythagorean

就像练习一样,我正在研究一个解决着名的中学毕达哥拉斯定理的应用程序,一个平方+ b平方= c平方.不幸的是,在我看来,即将出现的答案与实际答案无关.这是"解决"操作期间使用的代码.

- (IBAction)solve {
 int legoneint;
 int legtwoint;
 int hypotenuseint;

 int lonesq = legoneint * legoneint;
 int ltwosq = legtwoint * legtwoint;
 int hyposq = hypotenuseint * hypotenuseint;

 hyposq = lonesq + ltwosq;

 if ([legone.text isEqual:@""]) {
  legtwoint = [legtwo.text intValue];
  hypotenuseint = [hypotenuse.text intValue];

  answer.text = [NSString stringWithFormat:@"%d", legoneint];
  self.view.backgroundColor = [UIColor blackColor];
 }
 if ([legtwo.text isEqual:@""]) {
  legoneint = [legone.text intValue];
  hypotenuseint = [hypotenuse.text intValue];

  answer.text = [NSString stringWithFormat:@"%d", legtwoint];
  self.view.backgroundColor = [UIColor blackColor];
 }
 if ([hypotenuse.text isEqual:@""]) {
  legoneint = [legone.text intValue];
  legtwoint = [legtwo.text intValue];

  answer.text = [NSString stringWithFormat:@"%d", hypotenuseint];
  self.view.backgroundColor = [UIColor blackColor];
 }
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,legone, legtwo, and hypotenuse所有代表UITextField对应于直角三角形的每个数学部分的那个. AnswerUILabel告诉,你猜对了,答案.有人看到程序中有任何缺陷吗?提前致谢!

ant*_*rez 6

没有仔细检查程序,但在第一行中已经存在一个大问题:

int lonesq = legoneint * legoneint;
int ltwosq = legtwoint * legtwoint;
int hyposq = hypotenuseint * hypotenuseint;
Run Code Online (Sandbox Code Playgroud)

此变量是使用仍然未分配的变量来定义的.您需要设置从文本字段中获取的变量的值,然后进行数学运算.C是一种顺序语言,一切都是从上到下执行,你不能说"a = b c",a将在程序的任何地方都是b c.