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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

3回答

1438閲覧

C言語の基本的なことです。

ky86

総合スコア15

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2018/02/19 04:37

編集2018/02/19 04:45

少し前の摂氏の乱数表記についてです。
乱数で、-10から35までの乱数を発生させ、”摂氏○○度”(○○が、発生した乱数)と表示させ、その値により、以下のように表示するプログラムです。
1.30度以上の場合は、”真夏日です。”と表示。
2.25度以上、30度未満の場合”夏日です。”と表示。
3.0度未満の場合、”真冬日です。”と表示。

30℃未満の表示結果がどうしても真夏日になってしまい、夏日になりません。
0℃の場合も真冬日に含まれてしまいます。どうしたらよいでしょうか。

#include <stdio.h> #include <time.h> #include <stdlib.h> main() { int n; printf("摂氏:"); scanf("%d", &n); //もし乱数が30℃『以上』なら真夏日と表示 if (n >= 30) { printf("真夏日です。\n"); //もし乱数が25℃『以上』30℃『未満』なら夏日と表示 } else if (n >= 25 && n <= 30) { printf("夏日です。\n"); }//もし乱数が0『未満』だった場合真冬日ですと表示 else if (n <= 0) { printf("真冬日です。\n"); { } } }

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

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

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

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

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

dit.

2018/02/19 04:43

teratailではコードを見やすくするためのしくみがあります。コード部分を選択し<code>ボタンを押すことで簡単に設定できますので質問を編集することをお勧めします。
guest

回答3

0

ベストアンサー

こんにちは。

30で"真夏日"、29で"夏日"と表示されました。これは仕様どおりと思いますよ。

if (n <= 0)は0以下の時成立しますので、0を入力すると"真冬日"が表示されますね。
演算子を「0未満の時成立するもの」へ変更しましょう。

投稿2018/02/19 04:50

Chironian

総合スコア23272

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

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

0

else if (n >= 25 && n <= 30) {
printf("夏日です。\n");

30℃以下になってんよ!?

else if (n <= 0) {
printf("真冬日です。\n"); {

0℃以下になってんよ!?

投稿2018/02/19 04:50

編集2018/02/19 04:52
episteme

総合スコア16614

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

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

0

30の条件が重複してますね。

if (n >= 30) {

else if (n >= 25 && n <= 30) {

30度以上→真夏日
25~29度→夏日

という条件であるなら、

c

1else if (n >= 25 && n <= 29) {

になります。
ただ、現状のままでも30度未満(29とか)は最初の条件に一致しないので、結果的には夏日に出力されていますけど。

真冬日のほうも同様で条件が0以下になっています。

else if (n <= 0) {

こうですね。

c

1else if (n < 0) {

投稿2018/02/19 04:49

ttyp03

総合スコア16996

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問