0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C言語の基礎練習問題集|入力・条件分岐・繰り返し・配列の最大値まで

0
Last updated at Posted at 2026-06-26

C言語を基礎から順に学びたい場合は、C言語 学習ロードマップ を参照してください。

C言語の基礎練習問題集|入力・条件分岐・繰り返し・配列の最大値まで

基本記事で学んだ、変数、条件分岐、繰り返し、配列、関数を使って解く練習問題です。

問題文を読んだら、すぐに答えを見ず、次の順番で考えてください。

入力は何か
↓
結果として表示したいものは何か
↓
途中で覚える値は何か
↓
if / for / 配列のどれが必要か
↓
小さく動かして確認する

このページの到達点は、配列から最大値を探すプログラムを、自分で組み立てられることです。

1. 表示と変数

問題1:自己紹介を表示する

名前と好きな食べ物を変数へ入れ、次のように表示してください。

私は Yamada です。
好きな食べ物は curry です。
例を見る
#include <stdio.h>

int main(void)
{
    char name[] = "Yamada";
    char favorite_food[] = "curry";

    printf("私は %s です。\n", name);
    printf("好きな食べ物は %s です。\n", favorite_food);

    return 0;
}

問題2:合計金額を表示する

quantity4unit_price150を入れ、合計金額を表示してください。

期待する表示です。

合計金額: 600円
考え方を見る

quantity * unit_priceの結果を、total_priceへ入れます。

2. 入力と条件分岐

問題3:偶数・奇数を判定する

キーボードから整数を1つ入力し、偶数か奇数かを表示してください。

整数を入力してください: 7
奇数です。

ヒントです。

number % 2 == 0
例を見る
#include <stdio.h>

int main(void)
{
    int number = 0;

    printf("整数を入力してください: ");

    if (scanf("%d", &number) != 1)
    {
        printf("整数を入力してください。\n");

        return 1;
    }

    if (number % 2 == 0)
    {
        printf("偶数です。\n");
    }
    else
    {
        printf("奇数です。\n");
    }

    return 0;
}

問題4:点数を判定する

キーボードから点数を入力し、次のルールで表示してください。

条件 表示
80点以上 よくできました。
60点以上80点未満 合格です。
60点未満 不合格です。

806059を入力して、境目の結果を確認してください。

3. 繰り返し

問題5:1から入力した数までの合計

キーボードから整数を入力し、1からその数までを足した合計を表示してください。

たとえば10を入力した場合は、次の表示にします。

1から10までの合計は55です。
考え方を見る
total を 0 で用意する
↓
number を 1 から入力値まで繰り返す
↓
total に number を足す
例を見る
#include <stdio.h>

int main(void)
{
    int limit = 0;
    int total = 0;

    printf("整数を入力してください: ");

    if (scanf("%d", &limit) != 1)
    {
        printf("整数を入力してください。\n");

        return 1;
    }

    for (int number = 1; number <= limit; number++)
    {
        total = total + number;
    }

    printf("1から%dまでの合計は%dです。\n", limit, total);

    return 0;
}

4. 配列

問題6:配列の合計と平均を求める

次の配列に入っている点数の合計と平均を表示してください。

int scores[] = { 72, 88, 65, 91, 77 };

期待する表示です。

合計: 393点
平均: 78.6点

ヒントです。

配列の要素を1つずつ取り出すには for を使う
平均を小数で出すには (double) を使う

問題7:配列から最大値を探す

次の配列に入っている数値のうち、最も大きい値を表示してください。

int values[] = { 18, 42, 9, 77, 35 };

期待する表示です。

最大値: 77

考え方です。

最初の値を最大値として覚える
↓
次の値と最大値を比べる
↓
次の値の方が大きければ、最大値を更新する
↓
最後の値まで繰り返す
例を見る
#include <stdio.h>

int main(void)
{
    int values[] = { 18, 42, 9, 77, 35 };
    int value_count = sizeof(values) / sizeof(values[0]);
    int maximum = values[0];

    for (int index = 1; index < value_count; index++)
    {
        if (values[index] > maximum)
        {
            maximum = values[index];
        }
    }

    printf("最大値: %d\n", maximum);

    return 0;
}

ここまでできれば

  • 入力した値をifで判定できる
  • forで合計を求められる
  • 配列を先頭から最後まで確認できる
  • 条件に合う値を覚え直し、最大値を探せる

この後は、変数の値だけでなく、変数が置かれている場所を扱うポインタを学びます。

C言語のポインタ入門|「値」と「場所」を分けて考える

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?