高校連絡板 修正点を教えてほしいです.いまのところ,2項

高校連絡板 修正点を教えてほしいです.いまのところ,2項。まず残念ながら、貴方のプログラムは三項には未対応で?三因子?対応に過ぎません。c言語で3項までの四則演算ができるプログラムを組もうと思ったのですが、うまくいきません. 修正点を教えてほしいです.いまのところ,2項で計算しようとエンターを押しても,3項までの入力待ちになってしまい、かつその計算結果もめちゃくちゃです.宜しくお願い致します
include <stdio h>
int error(){
printf( "Error!(演算記号の指定が誤りです)\n" );
}
int main()
{ double a, b, c, d, e, f, ans;
char op,op2,kakko1,kakko2;
int hantei=0;
printf( "電卓(3項まで!)" );
//3項のとき
if( scanf( "%lf %c %lf %c %lf", &a, &op, &b, &op2, &c) == 5 ){
//優先順位を決める
switch( op ) {
case & x27;*& x27;: hantei=1;
case & x27;/& x27;: hantei=1;
default: error();}
switch( op2 ) {
case & x27;*& x27;: hantei=2;
case & x27;/& x27;: hantei=2;
default: error();}
//優先順位に沿って計算
if(hantei==0){
switch( op ) {
case & x27;+& x27;: d = a+b;
if(op2==& x27;+& x27;)ans=d+c;
else ans=d c;
case & x27; & x27;: d= a b;
if(op2==& x27;+& x27;)ans=d+c;
else ans=d c;
default: error();
}
}
if(hantei==1){
switch( op ) {
case & x27;*& x27;: d = a*b;
if(op2==& x27;+& x27;)ans=d+c;
else ans=d c;
case & x27;/& x27;: d= a/b;
if(op2==& x27;+& x27;)ans=d+c;
else ans=d c;
default: error();
}
}
if(hantei==2){
switch( op2 ) {
case & x27;*& x27;: d = b*c;
if(op==& x27;+& x27;)ans=a+d;
else ans=a d;
case & x27;/& x27;: d= b/c;
if(op==& x27;+& x27;)ans=a+d;
else ans=a d;
default: error();
}
}
}
//2項のとき
else if(scanf( "%lf %c %lf", &a, &op, &b )==3);
switch( op ) {
case & x27;+& x27;: ans = a + b;
case & x27; & x27;: ans = a b;
case & x27;*& x27;: ans = a * b;
case & x27;/& x27;: ans = a / b;
default: error();
}
printf( " > %lf\n", ans );
}

結果
$ /dentaku exe
1+1+1
電卓(3項まで!)Error!(演算記号の指定が誤りです)
Error!(演算記号の指定が誤りです)
Error!(演算記号の指定が誤りです)
Error!(演算記号の指定が誤りです)
> 1 000000高校連絡板。の中点-,/,を通ることを使って計算するようですが。この数字はどの様
に算出できるのかお教え下さい。例や問題のように「の結果が関数の形に
なってから,最後にまとめて1つだけを付けます」.二項定理を用いた例題
の。分母にのあるものの一般項の計算結果へのたどり着き方がわかりません
。の指数が-となるまでの補助線の引き方によっては,中学数学で解ける
こともありますが,その解き方だけで押していくと,余弦定理が身に着か
なくなる

まず残念ながら、貴方のプログラムは三項には未対応で?三因子?対応に過ぎません。[※?3*x*y*z?でも単項式です]似たような処理は何度も書かずに自作関数に?まとめることを推奨します。質問者のコードは、二因子?入力と?三因子?入力の区別すら付いていないので、演算の前にソコだけでも区別出来るコードを書いた方が良いかと。#include?stdio.hint?error{??printf?Error!演算記号の指定が誤りです/n?;}int?mainvoid{?double?a,?b,?c;??char?op,op2;??int?hantei=0;??printf?電卓3因子まで!?;???????ifscanf%lf?%c?%lf,?a,?op,?b3????error;??else?ifscanf?%c?%lf,?op2,?c==2????hantei+=8;??printf%lf?%c?%lf,?a,?op,?b;??ifhantei8printf?%c?%lf,?op2,?c;??printf/n;??return?0;}蛇足多因子?対応で四則演算と括弧に対応した[演算子?優先順位?付き]コードがリンク先にあります。いまのところ,2項で計算しようとエンターを押しても,3項までの入力待ちになってしまい、なら、数式を文字列で入力させれば良い。2項で計算しようにも、いきなり最初のscanf関数呼び出しで3項分の入力を求めているんだから当然そうなるわな。まずね、「2項と3項の違いを、どう入力し分ければいいのか?」を考えよう。そんで、ちゃんとフローチャートを書こう。いきなりコードを書くってのは「頭の中でやるべきこととその手順を完璧に把握している人」じゃないと無理だよ。

  • 近畿派呆然 :どちらの説有力
  • 年末ジャンボ70枚買った結果 年末ジャンボ枚買った
  • iPhone アイフォン壊れたので同機種保証使ってかえる
  • Excelで四捨五入する方法 四捨五入や下2桁切り上げ?
  • 会葬御礼とは わざわざ葬式のカタログギフトって書かなくて
  • Leave a comment.

    Your email address will not be published. Required fields are marked *.