私は C を習得するための探求を続けており、現在、2 つのオペランドと演算子を要求するために、基本的な電卓を継続的に使用するための演習に取り組んでいます。演算子が「+」でない場合、エラー メッセージが表示されます。現在、いくつかの問題に直面しています。
- 「+」を入力すると、2 回表示されます。私のコードには、これが起こることを示すものは何もありません。
- 最初のオペランドでも同じ問題が発生します。また、入力が完了したことをコードに伝える方法もわかりません。
- 2 番目のオペランドは問題ありませんが、入力を終了する方法がまだわかりません。
- 結果が表示された直後に正しくループバックしますが、再度プロンプトを表示する前にエラー メッセージが表示されます。
http://tinypic.com/r/34ew5cx/6
注: scanf で二重数を読み取るために lf を使用していることは知っていますが、何らかの理由で lf が機能せず、f が正常に機能しているため、無視してください :)
コードをフォーマットする方法/このサイトで質問する方法/このような問題に対処する方法に関する一般的な提案とともに、観察を歓迎します。ご協力いただきありがとうございます!
int main () {
char mychar;
int a;
double op1;
double op2;
printf("Welcome to Andrew Hu's calculator program!\n"); //Greeting
while(1)
{ printf("Enter a mathematical operation to perform:\n");
scanf("%c", &mychar);
if(mychar == '+') //Valid Operators
a = 1;
else
a = 0;
if(a == 0) //Operator Checker, error if invalid
printf("\nError, not a valid operator\n");
else if(a == 1){
printf("%c\n", mychar),
printf("Enter OP1:\n"),
scanf("%f", &op1),
printf("%f\n", op1),
printf("Enter OP2:\n"),
scanf("%f\n", &op2),
printf("%f\n", op2),
printf("Result of %f %c %f = %f\n",
op1, mychar, op2, (op1 + op2) );
}
}