C言語 演習問題 第2回 『for文・while文』

C言語 の演習問題を解いてみましょう。今回はfor文とwhile文について扱います。
問題文で提示された要件を満たすプログラムを作成してみて下さい。

この記事はシリーズ記事です。全シリーズはこちらからご覧になれます。

( C言語 の基礎、操作方法等の記事⼀覧は こちら

目次

第1問

①1から20までの数字を順番に表示するプログラムを書いてください。
②2から25までの数字を順番に表示するプログラムを書いてください。
③1から15までの数の合計を計算し表示するプログラムを書いてください。

◆回答例◆
#include <stdio.h>

int main(void)
{
    int i;
    //① 1-20
    for (i = 1; i <= 20; i++)
    {
        printf("%d\n", i);
    }
    //② 2-25
    for (i = 2; i <= 25; i++)
    {
        printf("%d\n", i);
    }
    //③ 1から15までの和
    int sum = 0;
    for (i = 1; i <= 15; i++)
    {
        sum += i;
    }
    printf("1から15までの和: %d\n", sum);
    
    return 0;
}   

第2問

1から50までの間で偶数のみを表示するプログラムを書いてください。

◆回答例①◆
#include <stdio.h>

int main(void)
{
    int i;
    // iを2から50まで2ずつ増やしていく
    for (i = 2; i <= 50; i += 2)
    {
        printf("%d\n", i);
    }
    return 0;
}
◆回答例②◆
#include <stdio.h>
int main(void)
{
    int i;
    for (i = 1; i <= 50; i++)
    {
        // iが偶数ならiを出力
        if (i % 2 == 0)
        {
            printf("%d\n", i);
        }
    }
    return 0;
}

第3問

ユーザーからの入力を受け取り、入力された値を画面表示した後、再度入力を促して繰り返し処理を行うプログラムを書いてください。入力された値が整数の1だった場合、画面表示を行った後に「終了」と表示して繰り返し処理を中止してください。

◆回答例◆
#include <stdio.h>
int main(void)
{
    int num = 0;

    while (num != 1)
    {
        printf("数字を入力: ");
        scanf("%d", &num);
        printf("%d\n", num);
    }
    printf("終了\n");
    return 0;
}

第4問

ユーザーから正の数を入力してもらい、負の数が入力されるまでそれらの合計を計算するプログラムを書いてください。

◆回答例◆
#include <stdio.h>

int main(void)
{
    int num = 0;
    int sum = 0;
    do
    {
        printf("数字を入力: ");
        scanf("%d", &num);
        if (num > 0)
        {
            sum += num;
            printf("合計: %d\n", sum);
        }
    } while (num > 0);
    
    return 0;
}

第5問

ユーザーからの秒数を入力してもらい、その秒数から0までカウントダウンを表示するプログラムを書いてください。なお、プログラムを待機させるためには Windows.h ヘッダーをインクルードして、 Sleep 関数に待機する時間を1000分の1秒単位で入力します。

#include <Windows.h>

// (中略)

Sleep(1000); // 1秒待機
◆回答例◆
#include <stdio.h>
#include <Windows.h>

int main(void)
{
    int seconds;

    printf("秒数を入力: ");
    scanf("%d", &seconds);

    while (seconds >= 0)
    {
        printf("%d\n", seconds);
        Sleep(1000); // 1秒待機
        seconds--;
    }
    return 0;
}

プログラミングは、練習と経験が鍵となります。ぜひ問題に挑戦し続けてください。別の記事で、より複雑な課題にも取り組みスキルをさらに磨いていきましょう。

この記事はシリーズ記事です。全シリーズはこちらからご覧になれます。

(Visited 39 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次