• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語のプログラミングがうまくいきません!)

C言語のプログラミングがうまくいかない!エラーは減ったけど完璧ではない

このQ&Aのポイント
  • C言語のプログラミングが上手くいかない問題に直面しています。先日プログラムを作り直しましたが、まだ完璧ではないようです。特にelseの部分に問題があるのかもしれません。アドバイスをいただけると助かります。
  • C言語のプログラミングが上手くいかない問題に直面しています。プログラムを作り直しましたが、まだ問題が残っています。特にelseの部分が間違っている可能性があります。どう修正すれば良いかアドバイスをお願いします。
  • C言語のプログラミングが上手くいかない問題に直面しています。以前のプログラムを修正しましたが、まだ完全には解決していません。おそらく、elseの部分に誤りがあるようです。助言があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

エラーの場合を先に書くのが、私の好みです。 押しつけるつもりは全くありません。 あくまで参考です。 #include <stdio.h> #include <math.h> int main(void) { double x, y, z, s; printf("x ? "), scanf("%lf", &x); printf("y ? "), scanf("%lf", &y); printf("z ? "), scanf("%lf", &z); if (x <= 0 || y <= 0 || z <= 0 || x + y <= z || y + z <= x || z + x <= y) { printf("三角形にならない\n"); } else { if (x == y && y == z) { printf("正三角形\n"); } else if (x == y || y == z || z == x) { printf("二等辺三角形\n"); } else { printf("その他の三角形\n"); } s = (x + y + z) / 2; printf("面積は%f\n", sqrt(s * (s - x) * (s - y) * (s - z))); } return 0; }

その他の回答 (3)

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.3

少々ネストしますが、こんな感じかと if (二辺の計が一辺より長い) {  if (三辺が等しい) {   正三角形と表示  } else if(二辺が等しい) {   二等辺三角形と表示  } else {   三角形と表示  }  面積計算  面積を表示 } else {  エラー表示 } あと正三角形の判断ですが、(x==y && y==z) で必要十分です。

回答No.2

最後の else はコンパイルエラーになるでしょうね。 この else って最初の if の else 部分だと思いますので、 そのようにかかないと駄目でしょう。 私なら if(x<y+z || y<x+z || z<x+y) { ans=(x+y+z)/2; menseki=sqrt(ans*(ans-x)*(ans-y)*(ans-z)); } else { printf("三角形になってません!\n"); return 1; } とかにしてしまいます。

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.1

コンパイルすら通らないと思うんだけど。 if~elseのペアを再確認しる。

関連するQ&A