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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

解決済

C言語 if文 文字で条件分岐する方法について

nananaun
nananaun

総合スコア1

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

1回答

-1評価

0クリップ

183閲覧

投稿2022/07/05 07:38

編集2022/07/05 22:28

学校の課題でTextRPGを作っているのですが、入力した文字で内容が変化する部分を作りたいのですがうまくいきません
作成途中です、一応全部載せました

C言語

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<time.h> //関数 const char* aa_title[]; void notes_title(void); //ディスパッチテーブル int scene00(void); int scene01(void); int scene02(void); int scene03(void); /*int scene04(void); int scene05(void); int scene06(void); int scene07(void); int scene08(void); int scene09(void);*/ int (*scene[])(void) = { scene00, //SCN_name scene01, //SCN_introduction scene02, //SCN_explanation scene03, //SCN_day_one /* scene04, // scene05, // scene06, // scene07, // scene08, // scene09 // */ }; enum { SCN_name, SCN_introduction, SCN_explanation, SCN_day_one, }; //グローバル変数 char name[81]; char scrounge[81]; int days = 0; int app = 0; int select; int main(void) { notes_title(); rewind(stdin); (void)getchar(); return 0; } const char* aa_title[] = { " ■ ■ ■ ", " ■■ ■ ■ ", " ■■ ■ ■ ■ ■ ", " ■■ ■ ■■■■ ■■■■ ■ ■■■ ■■■■ ■ ■■■ ■ ■■■ ■ ■■ ■■■■ ■■■■ ■■■■ ■ ", " ■ ■ ■ ■■ ■ ■■ ■■ ■■ ■ ■■ ■■ ■■ ■■ ■ ■■ ■ ■ ■■ ■ ■ ", " ■ ■■ ■ ■ ■ ■ ■ ■■ ■ ■ ■ ■ ■ ■■ ■ ■ ■ ■■ ■ ", " ■■■■■■ ■■ ■ ■ ■ ■■■■■■ ■ ■ ■ ■ ■ ■■ ■ ■ ■■■■■■ ■ ", " ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■■ ■ ■ ■ ■ ", " ■■ ■■ ■ ■ ■■ ■ ■ ■ ■■ ■ ■ ■■ ■■ ■■ ■■ ■■ ■■ ■■ ■ ", " ■ ■ ■■■■ ■■■■ ■ ■ ■■■■ ■ ■ ■■■■■ ■■■■■ ■■ ■■ ■■■■ ■ ", " ■ ", " ■ ", " ■ ", NULL, }; const char* item[] = { "ドレス", "ネックレス", "イヤリング", "指輪", "香水", "帽子", "靴", "ブローチ", "ゴルジュラン", "ロザリオ", "ペンダント", "ブレスレット", "帯どめ", "チョーカー", NULL, }; void notes_title(void) { //最初に注意事項の表示 printf("表示が止まったらENTER\n"); printf("全画面表示推奨\n"); rewind(stdin); (void)getchar(); printf("\n"); system("cls"); //タイトル表示 for (int i = 0;aa_title[i] != NULL;i++) { printf("%s\n", aa_title[i]); } rewind(stdin); (void)getchar(); printf("\n"); scene[SCN_name](); } int scene00(void) { system("cls"); //名前の決定 printf("\nあなたの名前は?\n"); (void)scanf("%s", name); printf("これから%sの物語が始まる\n", name); rewind(stdin); (void)getchar(); printf("\n"); return scene[SCN_introduction](); } int scene01(void) { system("cls"); //物語の導入 printf("%sの両親は酷い人達で%sのことを虐待していた\n", name, name); printf("\nある時%sの住む家が放火の被害に遭い離れに隔離されていた%sだけが生き残った\n", name, name); printf("\nそうして天涯孤独となった%sは父の妹に養子として引き取られ義姉と義妹ができた\n", name); printf("\n%sの境遇を知っていた彼女らは%sに優しく接していた\n", name,name); printf("\n%sは人に親切にされることに慣れていなかったが\n段々と彼女らに心を開き本当の家族のように接することができるようになった\n",name); printf("\nそんな時に義母から%sを含めた娘たちはある話しを聞かされた\n", name); srand((unsigned int)time(NULL)); days = rand() % 7 + 7; printf("\n義母曰く「%d日後に王子の婚約者を決めるための舞踏会を開く」とのことだった\n",days); printf("\n義姉や義妹は興味が無いようだったが%sは違った\n", name); printf("\nその姿をみた彼女らは%sを王子の婚約者にするために%sに協力することにした\n",name,name); rewind(stdin); (void)getchar(); return scene[SCN_explanation](); } int scene02(void) { system("cls"); //ゲームの概要を説明 printf("このゲームの目的は%d日後にある王子を魅了するために%d日間家族の協力のもと自分磨きをすることです\n", days, days); printf("\n義姉、義妹、義母の順に自分磨きの手伝いをしてくれます\n"); printf("\n魅力的になれるように頑張りましょう\n"); printf("\n1つだけ忠告をすると、人さらいの集団が%sの住む国に向っているらしいですよ\n", name); printf("\nそれでは「Aschenputtel」を楽しんできてください\n"); return scene[SCN_day_one](); } int scene03(void) { int action = 0; //1日目 system("cls"); //義姉のターン printf("1日目\n"); printf("\n%sは義姉の所に向った\n", name); printf("\n義姉「%sちゃん、化粧を教えてあげるわ、こっちに来なさい」\n",name); printf("\n%sは義姉に化粧を教えてもらい魅力的になった\n", name); srand((unsigned int)time(NULL)); app += rand() % 3 + 1; rewind(stdin); (void)getchar(); system("cls"); //義妹のターン printf("%sは義妹の所に向った\n", name); printf("\n義妹「%sお姉ちゃんに今必要なものを教えてあげる」\n", name); srand((unsigned int)time(NULL)); select = rand() % 14; printf("\n義妹「今%sお姉ちゃんに必要なのは%sよ!」\n",name,item[select]); rewind(stdin); (void)getchar(); system("cls"); //義母のターン printf("%sは義母の所に向った\n", name); printf("\n義母「あら、%sどうしたの?」\n",name); printf("\n義母に義妹から教えてもらったアイテムを買ってもらおう\nアイテムの前の数字を入力してね:"); (void)scanf("%s", scrounge); if (item[select] == scrounge) { printf("\nとっても似合っているよ%s\n",name); printf("\nまた欲しいものがあるなら教えておくれ\n"); srand((unsigned int)time(NULL)); app += rand() % 3 + 1; } else { printf("\n悪いね%s、それを買うことができなかったよ\n",name); } rewind(stdin); (void)getchar(); system("cls"); //プレイヤーのターン printf("%sのターンです\n",name); printf("\n1:現在の魅力度を知る\n2:魅力上げをする\n3:魅力下げをする\n4:何もしない\nの内1つを行動出来ます\n"); printf("\n選択肢の数字を入力してください:"); (void)scanf("%d", &action); printf("\n"); if (action == 1) { printf("\n現在の魅力度は%dです\n", app); } else if (action == 2) { srand((unsigned int)time(NULL)); app += rand() % 3 + 1; printf("\n%sの魅力度が上がった\n", name); } else if (action == 3) { srand((unsigned int)time(NULL)); app -= rand() % 3 + 1; printf("\n%sの魅力度が下がった\n", name); } else { printf("\n%sは休憩した\n",name); } printf("\n%sは眠りについた\n", name); rewind(stdin); (void)getchar(); system("cls"); printf("残り%d日", days - 1); return 0; }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

otn

2022/07/05 07:50

質問内容は端的に書きましょう。
Zuishin

2022/07/05 08:12

条件分岐は「じょうけんぶんき」と読みます。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。