scanf関数・forとif文の組み合わせ

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
みみ
記事: 4
登録日時: 3年前

scanf関数・forとif文の組み合わせ

#1

投稿記事 by みみ » 3年前

大学の課題です。c言語はまだ初めて間もないです。
教えて頂けるととても助かります!!

[課題]
キーボードから西暦年を入力して、昭和あるいは平成何年か表示する。生年を3人分続けて計算するものとする。その際、scanf関数、for文とif文の組み合わせる。西暦1926年(昭和1年)から2018年(平成30年)までを範囲とします。

コード:

#include <stdio.h>
int main(void){
    int seireki, syouwa, heisei;
    
    scanf("%d", &seireki);
    printf("西暦は%d年\n", seireki);
    
    if(seireki >= 1988){
        for(seireki = 1988; seireki <= 2018; seireki++){
        heisei = seireki - 1988;
        printf("平成%2d年\n", heisei);
        }
    } else {
        for(seireki = 1926; seireki <= 1987; seireki++){
        syouwa = seireki - 1925;
        printf("平成%2d年\n", syouwa);
        }
    }
}
上が自力で作れた範囲です。
ですが、一人分しか表示できず、ループされてしまっています。
ヒントでもいいので、教えて頂けると幸いです。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: scanf関数・forとif文の組み合わせ

#2

投稿記事 by みけCAT » 3年前

コード:

#include <stdio.h>
int main(void) {
    for (3人分) {
        キーボードからの西暦年の入力を受け取る

        昭和あるいは平成何年か表示する
    }
}
のような感じで処理するといいでしょう。

また、ループを書いているのでループされます。
せっかくseirekiに入力を読み込んでいるのに、for文のループ変数にしてぶち壊してはいけません。
今あるfor文は両方とも消しましょう。

さらに、昭和のはずの時も「平成」と出力してしまっているので、そこも修正するべきですね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

みみ
記事: 4
登録日時: 3年前

Re: scanf関数・forとif文の組み合わせ

#3

投稿記事 by みみ » 3年前

分かりやすく教えて頂き、ありがとうございました。
とても助かりました!

返信

“C言語何でも質問掲示板” へ戻る