標準入力 解答ページ | Programming Place Plus C言語編 第6章

トップページC言語編第6章

問題①

問題① 2つの整数を受け取り、両方を足し合わせた結果を出力するプログラムを作ってください。


たとえば次のように書けます。

#include <stdio.h>

int main(void)
{
    puts("Please enter the two integers.");
    char input_string[40];
    fgets(input_string, sizeof(input_string), stdin);
    int num1;
    int num2;
    sscanf(input_string, "%d %d", &num1, &num2);

    printf("%d\n", num1 + num2);
}

実行結果:

Please enter the two integers.
10 20  <-- 入力された文字列
30

問題②

問題② 入力された整数を3乗した結果を出力するプログラムを作ってください。


たとえば次のように書けます。

#include <stdio.h>

int main(void)
{
    puts("Please enter the integer.");
    char input_string[40];
    fgets(input_string, sizeof(input_string), stdin);
    int num;
    sscanf(input_string, "%d", &num);

    printf("%d\n", num * num * num);
}

実行結果:

Please enter the integer.
10  <-- 入力された文字列
1000

非常に大きい値を入力されると、おかしな結果になりますが、今のところは無視していいでしょう。

問題③

問題③ 標準入力から秒数を受け取り、それを時・分・秒に変換して出力するプログラムを書いてください。


除算と剰余を使えば、秒数から変換することが可能です。

#include <stdio.h>

int main(void)
{
    puts("Please enter the seconds.");
    char input_string[20];
    fgets(input_string, sizeof(input_string), stdin);
    int second;
    sscanf(input_string, "%d", &second);

    // ○:○:○ のような形で出力する
    printf("%d:", second / 3600);
    printf("%d:", second % 3600 / 60);
    printf("%d",  second % 60);
    printf("\n");
}

実行結果:

Please enter the seconds.
5432  <-- 入力された秒数
1:30:32

問題④

問題④ “x y z” という文字列には、何文字含まれていますか?(x と y の間と、y と z の間に半角の空白文字があります)


文字列の末尾にヌル文字が隠れていることを忘れないようにしてください。半角の空白文字も当然 1文字にカウントされますから、全部で 6文字あります。


参考リンク


更新履歴



第6章のメインページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る