105年身心障礙人員四等程式設計概要

四、請寫出下列 C 語言算式:(每小題15分,共30分)

()假設month 為整數變數。請利用三元運算子寫一個 C 語言算式(expression)。假如 month 的值為一個31 天的月份則算式值等於31,假如 month 的值為一個30天的月份則算式值等於30,假如 month 的值等於2,則算式值等於28,假如 month 的值小於1或是大於12,算式值等於 -1

()假設 year 為整數變數。根據西元曆法,小於4000的西元年,若可以為400整除或是可以被4整除但不被100整除的西元年份者為閏年。請寫一個 C 語言算式 (expression),算式值為真表示 year 年為小於4000的閏年,反之則否。

答:

()

#include <stdio.h>

int main( ) {

    int month;

    printf("請輸入月份:");

    scanf_s("%d", &month);

    int result = (month == 1 || month == 3 || month == 5 || month == 7 ||

        month == 8 || month == 10 || month == 12) ? 31 :

        (month == 4 || month == 6 || month == 9 || month == 11) ? 30 :

        (month == 2) ? 28 :

        (month < 1 || month > 12) ? -1 : 0;

    if (result == -1) {

        printf("無效的月份值\n");

    }

    else if (result == 0) {

        printf("無法確定的天數\n");

    }

    else {

        printf("%d月有%d\n", month, result);

    }

    return 0;

}

執行結果:

請輸入月份:2

2月有28

()

#include <stdio.h>

int main( ) {

    int year;

    printf("請輸入年份:");

    scanf_s("%d", &year);

    int isLeapYear = (year < 4000) && ((year % 400 == 0) || ((year % 4 == 0) &&

        (year % 100 != 0)));

    if (isLeapYear) {

        printf("%d年是閏年\n", year);

    }

    else {

        printf("%d年不是閏年\n", year);

    }

    return 0;

}

執行結果:

請輸入年份:2020

2020年是閏年

 

 

arrow
arrow
    創作者介紹
    創作者 jacksaleok 的頭像
    jacksaleok

    國考資訊處理工作室(高考二級資訊處理/高考三級資訊處理/調查局三等/關務人員三等/地方特考三等)

    jacksaleok 發表在 痞客邦 留言(0) 人氣()