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

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

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

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

2回答

532閲覧

コードをスリムにしたいです。

Red_Bull

総合スコア19

C

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/04/21 10:32

編集2021/04/21 10:45

以下のコードのもう少しスリムな書き方はありますか。

C

1#include <stdio.h> 2#pragma warning(disable: 4996) 3 4int main(void) 5{ 6 int mon,day; 7 printf("何月ですか?"); 8 scanf("%d",&mon); 9 printf("何日ですか?"); 10 scanf("%d",&day); 11 12 switch (mon) { 13 case 1: 14 if (day <= 19) { 15 printf("あなたはやぎ座です"); 16 } else { 17 printf("あなたはみずがめ座です"); 18 } 19 break; 20 case 2: 21 if (day <= 18) { 22 printf("あなたはみずがめ座です"); 23 } else { 24 printf("あなたはうお座です"); 25 } 26 break; 27 case 3: 28 if (day <= 20) { 29 printf("あなたはみずがめ座です"); 30 } else { 31 printf("あなたはおひつじ座です"); 32 } 33 break; 34    ・ 35    ・ 36    ・ 37} 38

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

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

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

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

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

guest

回答2

0

ちなみに、コレ系のやつは条件をデータにしといてループでチェックするとラクです。

c

1 struct seiza { 2 char name[30]; 3 int st; 4 int ed; 5 }; 6 struct seiza data[13] = { 7 {"おひつじ座",321,419}, 8 {"おうし座",420,520}, 9 {"ふたご座",521,621}, 10 {"かに座",622,722}, 11 {"しし座",723,822}, 12 {"おとめ座",823,922}, 13 {"てんびん座",923,1023}, 14 {"さそり座",1024,1122}, 15 {"いて座",1123,1121}, 16 {"やぎ座",1222,1231}, 17 {"やぎ座",101,119}, 18 {"みずがめ座",120,218}, 19 {"うお座",219,320} 20 }; 21/* 以下略 */

--- 追記 ---
例えばこんな感じス

c

1 int x = mon * 100 + day; 2 int i; 3 for (i=0; i<13; i++) { 4 if (data[i].st <= x && data[i].ed >= x) { 5 printf("あなたは%sです。",data[i].name); 6 break; 7 } 8 }

投稿2021/04/21 12:51

編集2021/04/21 21:16
takasima20

総合スコア7458

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

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

Red_Bull

2021/04/21 14:32

構造体の使い方がまだあまりわかっていないのでループで書く場合にはどのようにしたら良いのかもう少し詳しく教えていただきたいです
Red_Bull

2021/04/22 03:39

ありがとうございます。 そのように使ったら良いんですね!
guest

0

ベストアンサー

「月の100倍+日」で1つの値にしてしまえば、年月を一気に判定できます。

C

1int val = mon * 100 + day; 2if(val <= 119) { 3 printf("あなたはやぎ座です"); 4} else if (val <= 218) { 5 printf("あなたはみずがめ座です"); 6}...

投稿2021/04/21 10:41

maisumakun

総合スコア145183

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

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

Red_Bull

2021/04/21 10:43

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問