質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1201閲覧

三角形の判別をするプログラム

mMs7ScOiWNZzOie

総合スコア14

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/04/28 16:30

編集2018/05/07 02:09

三辺を入力して、正三角形、二等辺三角形、三辺の長さが違う三角形の判断を行うプログラムを作りたいです。

どんな値を入力しても正三角形と表示されてしまいます。このプログラムの何がおかしいのでしょうか?行き詰ってしまったので教えてください。

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int a, b, c; printf("Input the lenghts of the sides of the triangle: "); while (1) { scanf("%lf", &a); scanf("%lf", &b); scanf("%lf", &c); if ((a == b) && (b == c)) { printf("3 (equilateral)\n"); } else if ((a == b || a == c || b == c)) { printf("2 (isosceles)\n"); } else if (a + b >= c && b + c >= a && c + a >= b) { if (a != b != c) { printf("1 (scalene)\n"); } } else if (a + b<c || a + c<b || b + c<a) { printf("0 (not a valid triangle)\n"); } return(0); } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ちらっと見て気付いたのは、scanfの書式指定子の誤りです。
int型の数値の入力を求める場合、%lfではなく%dを指定してください。


それ以外にも妙な箇所がとりあえず三つ。

  • a != b != c この条件式の動作はおそらく想定どおりでないこと (不要な気もする)
  • 三角形として成立しないケースは単に else にした方がよい
  • そのwhile文、本当に必要?

投稿2018/04/28 16:34

編集2018/04/28 16:55
LouiS0616

総合スコア35658

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2018/04/28 16:52

あと、質問には『C』のタグをつけた方が良いですね。
mMs7ScOiWNZzOie

2018/04/28 17:25

回答ありがとうございます。 a!=b!=cの部分は”三角形であるが、全ての辺の長さが違うこと”を表現したつもりでした。どのような表現が正しいのでしょうか?
mMs7ScOiWNZzOie

2018/04/28 17:38

すみません、解決しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問