Top >C言語 練習問題集

4. 分岐処理

練習問題 4 - 1

int 型の変数 x、y にそれぞれ数値を入力し、x が y より大きい場合に、xはyより大きいという文を表示するプログラムを作成しなさい


int x;
int y;

scanf( "%d", &x );
scanf( "%d", &y );

if( x > y )
    printf( "xはyより大きい" );

練習問題 4 - 2

int 型の変数 x、y にそれぞれ数値を入力し、x が y より大きい場合にはx は y より大きい、x が y より小さい場合にはxはyより小さいと表示するプログラムを作成しなさい


int x;
int y;

scanf( "%d", &x );
scanf( "%d", &y );

if( x > y )
    printf( "xはyより大きい" );
else if( x < y )
    printf( "xはyより小さい" );

練習問題 4 - 3

2つの整数値を入力し、大きい方(小さくない方)の数を表示するプログラムを作成しなさい


int x;
int y;

scanf( "%d", &x );
scanf( "%d", &y );

if( x > y )
    printf( "%d", x );
else
    printf( "%d", y );

練習問題 4 - 4

int 型の変数 x、y にそれぞれ数値を入力し、x が y より大きい場合にはxはyより大きい、x が y より小さい場合にはxはyより小さい、x と y が等しい場合にはxとyは等しいと表示するプログラムを作成しなさい


int x;
int y;

scanf( "%d", &x );
scanf( "%d", &y );

if( x > y )
    printf( "xはyより大きい" );
else if( x < y )
    printf( "xはyより小さい" );
else
    printf( "xとyは等しい" );

練習問題 4 - 5

正の整数値を入力し、それが偶数か奇数かを判定するプログラムを作成しなさい


int x;

scanf( "%d", &x );

if( ( x % 2 ) == 0 )
    printf( "偶数です" );
else
    printf( "奇数です" );

練習問題 4 - 6

整数値を入力し、以下の四つの分類から該当するものを表示するプログラムを作成しなさい

正の偶数正の奇数負の偶数負の奇数


int x;

scanf( "%d", &x );

if( x >= 0 )
{
    if( ( x % 2 ) == 0 )
        printf( "正の偶数です" );
    else
        printf( "正の奇数です" );
}
else
{
    if( ( x % 2 ) == 0 )
        printf( "負の偶数です" );
    else
        printf( "負の奇数です" );
}

練習問題 4 - 7

試験の点数を入力し、対応する成績を表示するプログラムを3種類作成しなさい


ケース1
int score;

scanf( "%d", &score );

if( score >= 60 )
    printf( "合格" );
else
    printf( "不合格" );
ケース2
int score;

scanf( "%d", &score );

if( score >= 80 )
    printf( "たいへんよくできました。" );
else if( score >= 60 )
    printf( "よくできました。" );
else
    printf( "ざんねんでした。" );
ケース3
int score;

scanf( "%d", &score );

if( score >= 80 )
    printf( "優" );
else if( score >= 70 )
    printf( "良" );
else if( score >= 60 )
    printf( "可" );
else
    printf( "不可" );

練習問題 4 - 8

中間試験と、期末試験の点数(それぞれ 0 ~ 100 点)を入力し、次の条件に従って合格、不合格を判定するプログラムを作成しなさい

  • 両方とも 60 点以上の場合、合格
  • 合計が 130 点以上の場合、合格
  • 合計が 100 点以上で、どちらかの試験が 90 点以上であれば合格
  • 上記以外は不合格

int score1;
int score2;

scanf( "%d", &score1 );
scanf( "%d", &score2 );

if( score1 >= 60 && score2 >= 60 )
    printf( "合格" );
else if( ( score1 + score2 ) >= 130 )
    printf( "合格" );
else if( ( score1 + score2 ) >= 100
            && ( score1 >= 90 || score2 >= 90 ) )
    printf( "合格" );
else
    printf( "不合格" );

練習問題 4 - 9

曜日と、午前、午後、夜間の区別を入力し、病院が開いているか、休診であるかを表示するプログラムを作成しなさい


int     day;
int     zone;
int     bopen = 1;

printf( "曜日を選択してください\n0=日曜、1=月曜、2=火曜、3=水曜、4=木曜、5=金曜、6=土曜" );
scanf( "%d", &day );
printf( "時間帯を選択してください\n0=午前、1=午後、2=夜間" );
scanf( "%d", &zone );

if( day == 0 )
    bopen = 0;
if( zone == 0 && ( day == 2 || day == 5 ) )
    bopen = 0;
else if( zone == 1 && day == 6 )
    bopen = 0;
else if( zone == 2 && ( day == 3 || day == 6 ) )
    bopen = 0;

if( bopen == 1 )
    printf( "診療しています。" );
else
    printf( "休診です。" );

練習問題 4 - 10

整数値 x, y を入力し、以下の条件に該当する場合、そうであることを示す文を表示しなさい

  • x は y より小さく、かつ、x と y は共に偶数である
  • x と y は等しく、かつ、負の数である
  • x は y より小さい、または、x は偶数である
  • x は 10 以下または 100 以上で、かつ、y は 10 以上かつ 100 以下である
  • x も y も負の数である、ではない( x も y も負の数である、の否定)

int     x, y;

scanf( "%d", &x );
scanf( "%d", &y );

if( x < y && ( x % 2 ) == 0 && ( y % 2 ) == 0 )
    printf( "xはyより小さく、かつ、xとyは共に偶数である。\n" );

if( x == y && x < 0 )
    printf( "xとyは等しく、かつ、負の数である。\n" );

if( x < y || ( x % 2 ) == 0 )
    printf( "xはyより小さい、または、xは偶数である。\n" );

if( ( x <= 10 || x >= 100 ) && ( y >= 10 && y <= 100 ) )
    printf( "xは10以下または100以上で、かつ、yは10以上かつ100以下である。\n" );

if( ! ( x < 0 && y < 0 ) )
    printf( "xもyも負の数である、ではない。\n" );

練習問題 4 - 11

月を表す数値を入力し、その月の初めから年末までにある祝日を表示するプログラムを作成しなさい


int month;

printf( "何月ですか?" );
scanf( "%d", &month );

switch( month )
{
    case 1:
        printf( "元日\n" );
        printf( "成人の日\n" );
    case 2:
        printf( "建国記念の日\n" );
    case 3:
        printf( "春分の日\n" );
    case 4:
        printf( "昭和の日\n" );
    case 5:
        printf( "憲法記念日\n" );
        printf( "みどりの日\n" );
        printf( "こどもの日\n" );
    case 6:
    case 7:
        printf( "海の日\n" );
    case 8:
    case 9:
        printf( "敬老の日\n" );
        printf( "秋分の日\n" );
    case 10:
        printf( "体育の日\n" );
    case 11:
        printf( "文化の日\n" );
        printf( "勤労感謝の日\n" );
    case 12:
        printf( "天皇誕生日\n" );
}

練習問題 4 - 12

好きな鮨(すし)を選択させ、それに対応したメッセージを表示する、鮨占いプログラムを作成しなさい


int sushi;

printf( "お好きな寿司を選んでください\n" );
printf( "1:まぐろ 2:えび 3:こはだ 4:あなご 5:いくら" );
scanf( "%d", &sushi );

switch( sushi )
{
    case 1:
        printf( "何か良いことがあります。" );
        break;
    case 2:
        printf( "驚くほど良いことがあります。" );
        break;
    case 3:
        printf( "ちょっと良いことがあります。" );
        break;
    case 4:
        printf( "とても良いことがあります。" );
        break;
    case 5:
        printf( "そこそこ良いことがあります。" );
        break;
}

練習問題 4 - 13

月を表す数値を入力し、その月の日数を表示するプログラムを作成しなさい2 月は 28 日とします

また、1 ~ 12 以外の数値が入力された場合に、入力が間違っていますと表示しなさい


int month;

printf( "何月ですか?" );
scanf( "%d", &month );

switch( month )
{
    case 2:
        printf( "28日です" );
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        printf( "30日です" );
        break;
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        printf( "31日です" );
        break;
    default:
        printf( "入力が間違っています" );
        break;
}
PAPER BOWL
NEZEN