🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C

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

Q&A

解決済

1回答

883閲覧

C言語の問題を解いているが思った答えにならない

yuruyuru

総合スコア14

C

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

0グッド

0クリップ

投稿2021/03/06 01:50

##問題
次の展開図から得られるサイコロを転がすシミュレーションを行うプログラムを作成してください。

サイコロの各面には図のとおりに 1 から 6 のラベルが割りあてられています。

入力としてサイコロの各面のラベルに対応する整数と、転がす命令の列が与えられるので、サイコロの上面の整数を出力してください。シミュレーションの初期状態は、図のとおりのラベルの位置でサイコロが置かれているものとします。

問題のリンク(展開図や細かな補足が乗っています)

C言語

1#include <string.h> 2#include <stdio.h> 3 4int main (void) { 5int dice_up, dice_front, dice_right, dice_left, dice_back, dice_douwn; 6int i=0, sub; 7char a[100],buf; 8 9scanf ("%d %d %d %d %d %d",&dice_up,&dice_front,&dice_right,&dice_left,&dice_back,&dice_douwn); 10 11scanf ("%s",a); 12for (i=0;a[i]!='\0';i++) { 13printf ("%c",a[i]); 14if (a[i]=='\0') { 15break; 16} 17 18switch (a[i]) { 19case 'E': 20sub=dice_douwn; 21dice_douwn=dice_right; 22dice_right=dice_up; 23dice_up=dice_left; 24dice_left=sub; 25 26case 'N': 27sub=dice_douwn; 28dice_douwn=dice_back; 29dice_back=dice_up; 30dice_up=dice_front; 31dice_front=sub; 32 33case 'W': 34sub=dice_douwn; 35dice_douwn=dice_left; 36dice_left=dice_up; 37dice_up=dice_right; 38dice_right=sub; 39 40case 'S': 41sub=dice_douwn; 42dice_douwn=dice_front; 43dice_front=dice_up; 44dice_up=dice_back; 45dice_back=sub; 46 47} 48} 49 50printf ("%d\n",dice_up); 51 52return 0; 53}

##入力値
1 4 8 16 32
EEWSN
のとき

##実行結果
16
になってしまいます。
正しい答えは32だそうです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

パッと見て各caseにbreakがないため意図しない動作になっていると思われます。

投稿2021/03/06 01:58

can110

総合スコア38341

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

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

yuruyuru

2021/03/06 02:08

ありがとうございます! 解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問