2012-01-27 3 views
5

Objective-Cコマンドラインで二次式を解くアプリケーションを作成しようとしています。Objective-C Foundationコマンドラインユーティリティでユーザー入力を操作する

#import <Foundation/Foundation.h> 

int main (int argc, const char * argv[]){ 

double a, b, c, sol1, sol2; 

NSLog(@"Welcome to the quadratic solver"); 

NSLog(@"Please enter the value of a"); 
scanf("%f", &a); 

NSLog(@"Please enter the value of b"); 
scanf("%f", &b); 

NSLog(@"Please enter the value of c"); 
scanf("%f", &c); 

sol1 = (-b + sqrt((double)pow(b,2) - 4 * a *c))/2 * a; 
sol2 = (-b - sqrt((double)pow(b,2) - 4 * a *c))/2 * a; 

NSLog(@"If a is: %f, b is %f, and c is %f.", a, b, c); 

NSLog(@"Solution one is: %f", sol1); 
NSLog(@"Solution two is: %f", sol2); 

}

しかし、私の出力は、情報のいずれかを受信して​​いない:私のコードは、これまでのところです。

2012-01-26 17:23:53.585 test[4595:707] Welcome to the quadratic solver 
2012-01-26 17:23:53.588 test[4595:707] Please enter the value of a 
1 
2012-01-26 17:23:56.030 test[4595:707] Please enter the value of b 
3 
2012-01-26 17:23:56.558 test[4595:707] Please enter the value of c 
-10 
2012-01-26 17:23:58.670 test[4595:707] If a is: 0.000000, b is 0.000000, and c is 0.000000. 
2012-01-26 17:23:58.672 test[4595:707] Solution one is: -0.000000 
2012-01-26 17:23:58.672 test[4595:707] Solution two is: -0.000000 

ご迷惑をおかけして申し訳ありません。

+0

フォーマット指定子 '%e'を試してください。 – Mahesh

答えて

4

あなたは一貫性のないタイピングを持っている...あなたが宣言する必要があるので、%fをにスキャンされています

float a, b, c, sol1, sol2; 

あなたのプログラムはその後、私のマシン上で正常に動作します。

+0

恐ろしい!あなたの助けをありがとう!これは私の問題を解決しました! – user1172534

関連する問題