20181127授業最終日制作2

自由プログラムの画像 C言語
自由プログラム

次の5つのスポーツの名前を英語に直しなさい

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
        次の5つのスポーツの名前を英語に直しなさい
*/
#include <stdio.h>
#include <string.h>
#define MAX 5
 
int main(void)
{
    char mondai[][14] = {"野球","サッカー","テニス","ゴルフ","陸上"};
    char kotae[][30] = {"baseball","football","tennis","golf","land"};
    char kaitou[256];       /*解答入力用*/
     
    int points = 0;       /*得点計算用*/
    int i;
     
    printf("次の5つのスポーツの名前を英語に直しなさい\n\n");
    for(i=0; i<MAX; i++){
        /*出題*/
        printf("\t問題%2d: %s ? ", i+1, mondai[i]);
        scanf("%s", kaitou);
        /*判定*/
        if( !strcmp(kaitou,kotae[i]) ){
            printf("\t〇\n");
            points ++;
        }
        else{
            printf("\t×\n");
        }
    }
    /*成績*/
    if(points == 0){
        printf("\n修業が足らん!!!\n");
    }
    else{
        printf("\n%d問中、%d問正解!\n", MAX, points);
    }
     
    return 0;
}

実行イメージ

次の5つのスポーツの名前を英語に直しなさい

問題 1: 野球 ? baseball

問題 2: サッカー ? soccor
×
問題 3: テニス ? tennis

問題 4: ゴルフ ? golfer
×
問題 5: 陸上 ? swimming
×

5問中、2問正解!

モンスターを倒すゲーム風のプログラム

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*ngame.c
 モンスターを倒すゲーム風のプログラム*/
 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
    int p=30;
    int m=40;  
void kougeki(void)
{
    /*ここにプログラムを記述*/
    int r;
    srand((unsigned)time(NULL));
    r = rand()%11;
     
    system("cls");
    printf("プレイヤー体力:%d\nモンスター体力:%d\n\n",p,m);
    printf("攻撃します\n");
        printf("%dダメージを与えた\n",r);
        printf("%dダメージを喰らった\n\n",r/2);
        m-=r;
        p-=r/2;
}
int main(void)
{
    int s;
     
    printf("モンスターが現れた\n");
     
     
    while(1){
        if(p==0){
            system("cls");
    printf("プレイヤー体力:%d\nモンスター体力:%d\n\n",p,m);
            printf("力尽きた・・・\n");
            break;
        }
        else if(m==0){
            system("cls");
    printf("プレイヤー体力:%d\nモンスター体力:%d\n\n",p,m);
            printf("モンスター討伐成功!\n");
            break;
        }
        printf("どうする?\n");
        printf("1.戦う\n2.逃げる\n");
        scanf("%d",&s);
            switch(s){
                case 1:
                    kougeki();
                    break;
                case 2:
                    if(m<p){/*プレイヤーの残りの体力が、モンスターより多ければ逃げれる*/
                        printf("うまく逃げることに成功した!\n");
                        goto END;
                    }
                else{
                    printf("逃げられない!\n");
                    continue;
                }
            }
    }
    END:
    return 0;
}

実行イメージ

プレイヤー体力:30
モンスター体力:40

攻撃します
3ダメージを与えた
1ダメージを喰らった

どうする?
1.戦う
2.逃げる

あなたが勇者として戦う力を手に入れたとしよう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <stdio.h>
  
void showNumber(int);
  
int main(void)
{
    int i, n;
    char moji[256];
  
    printf("もし、\n");
    getchar();
    rewind(stdin);
    printf("あなたが勇者として戦う力を手に入れたとしよう。\n");
    getchar();
    rewind(stdin);
    printf("あなたに味方はいない。\n");
    getchar();
    rewind(stdin);
    printf("敵は人外に化け物、魑魅魍魎。\n");
    getchar();
    rewind(stdin);
    printf("あなた一人で世界を守らなくてはならない。");
    getchar();
    rewind(stdin);
    printf("王「勇者よ、戦ってくれるか?」");
    getchar();
    rewind(stdin);
    printf("1.はい\n");
    printf("2.YES\n");
    printf("3.いいえ\n");
    printf("4.だが断る\n");
    scanf("%d",&n);
    rewind(stdin);
        showNumber(n);
 
    return 0;
}
 
void showNumber(int n)
{
    printf("\n");
 
    switch(n){
 
            case 1:
            printf("王「そうかそうか、戦ってくれるのか。」\n");
        getchar();
        rewind(stdin);
        printf("王「ならば戦うための武具をあたえよう。」\n");
            printf(" 俺たちの戦いはこれからだっ!!!系END\n");
            break;
 
            case 2:
            printf("王「何が、「YES」だ!貴様ふざけているのか」");
        getchar();
        rewind(stdin);
        printf("王「者ども、この不敬なものを拘束しろ!!」\n");
            printf(" この後、なんやかんやあって、お尋ねものになりながらも敵と戦いに赴く系END\n");
            break;
 
            case 3:
            printf("王「なっ、なんじゃと。世界の為に戦ってくれないのか…」\n");
        getchar();
        rewind(stdin);
        printf("王「…もうこの国は、世界はおしまいだ……」\n");
            printf(" そして、世界は滅ぼされるのであった BAD END\n");
        break;
 
            case 4:
            printf("王「!!?」\n あなた「この私の最も好きな事の一つは…」");
        getchar();
        rewind(stdin);
        printf("あなた「自分は偉いと思っている奴に NOと断ってやる事だ!!」\n");
            printf(" 一時のテンションで言った結果、この後ひどい目に… BAD END\n");
            break;
 
 
        default:
        printf("残念ながら、それは選択肢に含まれていない。\n");
        printf("GAME OVER");
    }
}

実行イメージ

もし、

あなたが勇者として戦う力を手に入れたとしよう。

あなたに味方はいない。

敵は人外に化け物、魑魅魍魎。

あなた一人で世界を守らなくてはならない。
王「勇者よ、戦ってくれるか?」
1.はい
2.YES
3.いいえ
4.だが断る

1

王「そうかそうか、戦ってくれるのか。」
 :

神出鬼没の超人

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
  
#define FILE_NAME    "data2.txt"
  
int main(void)
{
    struct _monster{
        char name[256];
        int hp;
        int mp;
    };
    struct _monster monster[4];
 
    int i, length;
    FILE *fp;
 
/* データファイルを開く */
    fp = fopen(FILE_NAME, "r");
    if(fp == NULL){
        printf("ファイル<%s>がオープン出来ません\n", FILE_NAME);
        exit(1);
    }
 
/* モンスターデータ読み取り */
    i = 0;
    while(fscanf(fp, "%s\n", monster[i].name) != EOF){
        fscanf(fp, "HP=%d\n", &monster[i].hp);
        fscanf(fp, "MP=%d\n", &monster[i].mp);
        i++;
    }
    fclose(fp);
    length = i;
    printf("%d体のモンスターデータを確認.....キーを押して下さい\n\n", length);
    getchar();
      
    /* モンスターデータ表示 */
    for(i=0; i<length; i++){
        printf("No.%2d:\n", i+1);
            printf("\t%s\n", monster[i].name);
            printf("\tHP/%04d MP/%04d\n", monster[i].hp, monster[i].mp);
    }
 
    return 0;
}

必要なデータファイル
data2.txt

神出鬼没の超人パンダマン
願いから生まれたザ・ペンシルマシーン
芸人バナナマン

実行イメージ

3体のモンスターデータを確認…..キーを押して下さい

No. 1:
神出鬼没の超人パンダマン
HP/1702920 MP/-1073741511
No. 2:
願いから生まれたザ・ペンシルマシーン
HP/7853384 MP/0128
No. 3:
芸人バナナマン
HP/1703568 MP/2003939381

だ~れだ!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
int main(void)
{
    int ma;
    int su;
 
printf("                ■■■■■                    \n");
printf("               ■■■■■■■■■                       \n");
printf("               □□□■■□■                       \n");
printf("              □■□■■■□■■■                        \n");
printf("              □■□□■■■□■■■                       \n");
printf("              □□■■■■□□□□                        \n");
printf("                ■■■■■■■                      \n");
printf("               □□■□□□                       \n");
printf("              □□□■□□■□□□                        \n");
printf("             □□□□■■■■□□□□                        \n");
printf("             ■■□■□■■□■□■■                         \n");
printf("             ■■■■■■■■■■■■                         \n");
printf("             ■■■■■■■■■■■■                         \n");
printf("               ■■■  ■■■                     \n");
printf("              □□□    □□□                    \n");
printf("             □□□□    □□□□                     \n");
    getchar();
    rewind(stdin);
printf("だ~れだ!\n");
printf("入力してね 1=ルイージ 2=マリオ\n");
scanf("%d",&su);
 
if(su==1){
        printf("正解!!次いこか\n");
    }
    else{
        printf("大正解!次いこか\n");
}
 
getchar();
rewind(stdin);
printf("                  ■                     \n");
printf("                  ■                     \n");
printf("                  ■                     \n");
printf("                  ■                     \n");
printf("                 ■■■                      \n");
printf("                ■■■■■                       \n");
printf("              ■■■■■■■■■                         \n");
printf("             ■■■■■■■■■■■                          \n");
printf("            ■■■■□■■■□■■■■                           \n");
printf("           ■■■■□■□■□■□■■■■                            \n");
printf("           ■■■■□■□■□■□■■■■                            \n");
printf("           ■■■□■□■■■□■□■■■                            \n");
printf("           ■■■□□■■■■■□□■■■                            \n");
printf("            ■■■■□□□□□■■■■                           \n");
printf("             ■■■■■■■■■■■                          \n");
    getchar();
    rewind(stdin);
printf("だ~れだ!\n");
printf("入力してね 1=スライム 2=うんち\n");
scanf("%d",&su);
 
if(su==1){
        printf("大正解!!おわり!\n");
    }
    else{
        printf("正解!おわり!\n");
}
     
 
return 0;
}

実行イメージ
20181127授業最終日制作2

九九の計算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* kuku.c 九九の計算 */
 
#include <stdio.h>
 
void kuku(int *suji)
{
    int j, ans;
     
    for(j=1; j<=9; j++){
        ans =  *suji * j;
         
        printf("%d * %d = %d\n", *suji, j, ans);
    }
     
};
int main(void)
{
    int num;
     
    printf("数字を入力してください(1~9):");
    scanf("%d", &num);
     
    kuku(&num);
     
     
    return 0;
}

実行イメージ

数字を入力してください(1~9):3
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27

時間を計測

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* stopwatch.c
   時間を計測 */
 
#include <stdio.h>
#include <time.h>
int main(void)
{
    time_t timer;
    struct tm *local;
     
    int hour, minute, second;
    int _hour, _minute, _second;
    int h, m, s;
     
    printf("タイムを計測します(ENTERキーを押してください)\n");
    getchar();
     
    timer = time(NULL);
    local = localtime(&timer);
     
    hour = local->tm_hour;
    minute = local->tm_min;
    second = local->tm_sec;
     
    printf("計測中…(ENTERキーで終了)\n");
    getchar();
     
    timer = time(NULL);
    local = localtime(&timer);
     
    _hour = local->tm_hour;
    _minute = local->tm_min;
    _second = local->tm_sec;
     
    if(second > _second){
        second = 60 - second;
        _second += second;
        _minute -= 1;
    }
    else _second -= second;
     
    if(minute > _minute){
        minute = 60 - minute;
        _minute += minute;
        _hour -= 1;
    }
    else _minute -= minute;
     
    if(hour > _hour){
        hour = 24 - hour;
        _hour += hour;
    }
    else _hour -= hour;
     
    printf(" %d時間 %d分 %d秒", _hour, _minute, _second);
     
    return 0;
}

実行イメージ

タイムを計測します(ENTERキーを押してください)

計測中…(ENTERキーで終了)

0時間 0分 7秒

コメント