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

C言語のプログラミングがうまくいかない!プログラムの間違いを教えてください

このQ&Aのポイント
  • 自分で書いたC言語のプログラミングが上手くいかない場合、どこが間違っているのかを教えてもらいたいと思います。また、正しいプログラムの書き方も教えていただければ幸いです。
  • プログラムの間違いを教えてください。三角形の3つの辺の長さをx、y、zに代入して、ヘロンの公式を使って形状と面積を求めるプログラムです。
  • C言語のプログラミングが上手くいかないので、どこが間違っているのかを教えてください。また、正しいプログラムの書き方も教えていただければ助かります。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4910/10378)
回答No.3

mainという関数ヘッダや、セミコロンが不足して文法エラーのところがありますが、これはタイプミスかコピペミスでしょうね。 それら以外の、明白な誤りは6点。 <この問題特有> (1) 三角形が成立しているかどうかの判断を最初にすべき。正三角形や二等辺三角形の判断は、三角形が成立したときに限って行う。また、判断する前に面積を求めているが、三角形でない場合にsqrtの引数が負になって、そこでエラーになるかもしれないので、これも三角形判断後に行う。 (2) 三角形かどうかの判断基準がおかしい。 (3) 正三角形の判断で、AND条件(&&)と、OR条件(||)を間違えている。 <Cの使い方一般> (4) double値の変数なのにscanfの書式で %f を使っている。 (5) double値のprintfなのに書式で %d を使っている。 (6) scanfの戻り値をチェックしていない。 <その他の良くない点> (7) scanfは使いこなしが難しい関数なので、上級者の自信が付くまでは使ってはいけません。文字配列を定義して、fgets()でそこに入力して、sscanf() でdoubleに変換してください。sscanfも同様に戻り値のチェックが必要です。 (8) 標準出力にプロンプトを出している。これがなぜ良くないかは説明が難しいので、とりあえずわからなくてもいいです。 (4)(5)(6)のような間違いをするレベルの初心者の割に、プログラム全体としてはよく書けていると思います。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>printf("x ?") scanf("%f" , &x); scanfの書式指定を確認してください。 >if (x === y || y == z || x == z) ===(=3つ)はC言語の演算子にはありません。 if (x == y || y == z || x == z) は x == y y == z x == z のどれか1つでも条件が成立すればいいです(厳密には違いますけど)。 ですので x, y, z の3つが同じという意味にはなりません。 >if (x === y || y == z || x == z) >else if (x == y || y == z || z == x) 最後の x == z と z == x は x, zが逆になってるだけなので同じですよ?

すると、全ての回答が全文表示されます。
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> C言語のプログラミングがうまくいきません! ただ「うまくいかない」だけでなく、どのようにうまくいかないのか、現状を把握するのが、修正するときのコツであり、上達のコツです。 ○ これ、このままだとコンパイルエラーになりませんか? コンパイルエラーは一番修正しやすい間違いです。 まず、それを修正しましょう。 ○計算結果がおかしい どの時点でおかしくなっているかを調べます。 例えば、入力した値と、変数の値が違っている、等。 そして、何故そうなったかを考えます。 そういえば、先日、こんな質問がありました http://okwave.jp/qa/q8101543.html あと、printfのマニュアルで、「書式」って箇所を良く読んでみましょう。 %dに対応する型は何となってますか?そして、変数mensekiの型は何でしょう?

すると、全ての回答が全文表示されます。

関連するQ&A