1. 程式人生 > >基於硬體的C(C++)語言程式設計教程9:判斷一個年份是否為閏年

基於硬體的C(C++)語言程式設計教程9:判斷一個年份是否為閏年

本系列文章希望探討以硬體為平臺講述C(C++)知識的一個新的途徑,改變目前大多數C語言教程僅注重C語言本身的語法規則,而脫離其應用環境的現狀。希望讀者通過本教程的學習,能夠立刻學以致用,真正將所學知識應用到專案實踐中。

開發環境:Atmel Studio 7.0

硬體平臺:Microchip AVR ATmega168PA

參考教材:C++程式設計(第3版) 譚浩強編著,清華大學出版社

備註:教程僅適合初學者,高手請繞過
 

本文將對教材P67頁的例程3.8進行改進,使之能夠運行於Atmel Studio。例程3.8的功能是判斷一個年份是否為閏年,閏年的判斷條件是“能被4整除,但不能被100整除,或者能被400整除”。

一、源程式(改進後)

/*
 *	專案名稱:判斷一個年份是否為閏年
 *	作者:snmplink
 *	建立時間:2018-10-30
 *	備註:
 */

#include <avr/io.h>

int main(void)
{
    int year, leap;		//leap表示是否為閏年,用1表示是閏年,用0表示不是閏年

	
    year = 2004;
	
    while (1) 
    {
        if (year % 4 == 0)
        {
            if (year % 100 == 0)
            {
                if (year % 400 == 0)
                {
                    leap = 1;
                } 
                else
                {
                    leap = 0;
                }
            }
            else
            {
                leap = 1;				
            }
        }
        else
        {
            leap = 0;
        }
    }
}

二、執行結果

三、流程圖

四、註解

1、關係運算符:<、 <=、 > 、>=、 ==、 !=,分別為小於、小於等於、大於、大於等於、等於、不等於。

2、邏輯運算子:&&、||、!,分別為邏輯與、邏輯或、邏輯非。

3、另一種寫法:

if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
    leap = 1;
}
else
{
    leap = 0;
}

任何問題,只需在此文章的評論處留言即可,我將盡力解答,不要試圖採用其它的聯絡方式,我一概不理會。

原創性文章,轉載請註明出處CSDN:http://blog.csdn.net/qingwufeiyang12346。

相關推薦

基於硬體CC++語言程式設計教程9判斷一個年份是否閏年

本系列文章希望探討以硬體為平臺講述C(C++)知識的一個新的途徑,改變目前大多數C語言教程僅注重C語言本身的語法規則,而脫離其應用環境的現狀。希望讀者通過本教程的學習,能夠立刻學以致用,真正將所學知識應用到專案實踐中。 開發環境:Atmel Studio 7.0 硬體平臺

基於硬體CC++語言程式設計教程11求解1+2+3+...+100之和

本系列文章希望探討以硬體為平臺講述C(C++)知識的一個新的途徑,改變目前大多數C語言教程僅注重C語言本身的語法規則,而脫離其應用環境的現狀。希望讀者通過本教程的學習,能夠立刻學以致用,真正將所學知識應用到專案實踐中。 開發環境:Atmel Studio 7.0 硬體平臺:Microch

基於硬體CC++語言程式設計教程10運輸公司計算運費

本系列文章希望探討以硬體為平臺講述C(C++)知識的一個新的途徑,改變目前大多數C語言教程僅注重C語言本身的語法規則,而脫離其應用環境的現狀。希望讀者通過本教程的學習,能夠立刻學以致用,真正將所學知識應用到專案實踐中。 開發環境:Atmel Studio 7.0 硬體平臺:Microch

基於硬體CC++語言程式設計教程12用函式實現2數之和

本系列文章希望探討以硬體為平臺講述C(C++)知識的一個新的途徑,改變目前大多數C語言教程僅注重C語言本身的語法規則,而脫離其應用環境的現狀。希望讀者通過本教程的學習,能夠立刻學以致用,真正將所學知識應用到專案實踐中。 開發環境:Atmel Studio 7.0 硬體平臺:Microch

Mac下使用Eclipse實現Android中呼叫C/C++NDK基礎詳細教程

寫於2014年那個辦公室停電導致熱爆了汗流浹背的夏天。 需求 NDK是由谷歌娘提供的,某種意義上就是可以讓android使用c開發的第“三”方sdk,所以,正常來說eclipse是沒有配置這個東西的,當然如我所云,我只考慮用最小的工程成本(較少的

c語言判斷一個年份是否是閏年

思路是將年份分別除以4,100,400的餘數分別存在four,hundred,fourhundred變數中然後只有兩種情況是閏年其他不是 #include <stdio.h> void main() { int four , hundred , fourhundred , year;

《網際網路程式設計Java》——課程筆記9郵件傳送程式設計

學會網路郵件傳送的程式設計技術。      網路程式設計的精髓是什麼?    就是客戶端和伺服器的對話和響應契約(協議)。 簡單郵件傳輸協議SMTP可以很好地詮釋這一點。    郵件傳輸協議包括SMTP(簡單郵件傳輸協議,RFC821)及其擴充協議MIME;    郵

C語言例程系列》-- 判斷一個整數是否素數

#include <stdio.h> int main() { int num,i,a,b=0; printf("請輸入整數:"); scanf("%d",&num); for(i=2; i<(n

c語言判斷一個年份是不是閏年和雞兔同籠問題

#include<stdio.h> int main() { int year; printf("請輸入年份:\n"); scanf("%d",&year); if((year%4==0)&&(year%100

程式設計判斷一個字串是否一個字串的子串。

#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char *str, *ptr; int i, len_str, len_pt

1012 - C語言程式設計教程第三版課後習題6.2

1012 - C語言程式設計教程(第三版)課後習題6.2 時間限制:1秒 記憶體限制:128兆 題目描述 輸入一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數。 輸入 一行字元 輸出 統計值 樣例輸入 aklsjflj123 sadf918u324 asdf91u32oa

1011 - C語言程式設計教程第三版課後習題6.1

1011 - C語言程式設計教程(第三版)課後習題6.1 時間限制:1秒 記憶體限制:128兆 題目描述 輸入兩個正整數m和n,求其最大公約數和最小公倍數。 輸入 兩個整數 輸出 最大公約數,最小公倍數 樣例輸入 5 7 樣例輸出 1 35 最大公約數求法我是用的是輾轉相除法進行

1010 - C語言程式設計教程第三版課後習題5.8

1010 - C語言程式設計教程(第三版)課後習題5.8 時間限制:1秒 記憶體限制:128兆 題目描述 企業發放的獎金根據利潤提成。利潤低於或等於100000元的,獎金可提10%; 利潤高於100000元,低於200000元(100000<I≤200000)時,低於100000元的部

1047 - C語言程式設計教程第三版課後習題10.5

1047 - C語言程式設計教程(第三版)課後習題10.5 時間限制:1秒 記憶體限制:128兆 題目描述 有n人圍成一圈,順序排號。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來的第幾號的那位。 輸入 初始人數n 輸出 最後一人的初始編號 樣例輸入

1022 - C語言程式設計教程第三版課後習題7.1

1022 - C語言程式設計教程(第三版)課後習題7.1 時間限制:1秒 記憶體限制:128兆 題目描述 用篩法求之N內的素數。 輸入 N 輸出 0~N的素數 樣例輸入 100 樣例輸出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

1008 - C語言程式設計教程第三版課後習題5.6

1008 - C語言程式設計教程(第三版)課後習題5.6 時間限制:1秒 記憶體限制:128兆 題目描述 給出一百分制成績,要求輸出成績等級‘A’、‘B’、‘C’、‘D’、‘E’。 90分以上為A 80-89分為B 70-79分為C 60-69分為D 60分以下為E 輸入 一個整數0

1007 - C語言程式設計教程第三版課後習題5.5

007 - C語言程式設計教程(第三版)課後習題5.5 時間限制:1秒 記憶體限制:128兆 描述 有一個函式 y={ x x<1 | 2x-1 1<=x<10 \ 3x-11 x>=10 寫一段程式,輸入x,輸出y 輸入 一個數x 輸出 一個數y 樣例輸

1006 - C語言程式設計教程第三版課後習題5.4

1006 - C語言程式設計教程(第三版)課後習題5.4 時間限制:1秒 記憶體限制:128兆 描述 有三個整數a b c,由鍵盤輸入,輸出其中的最大的數。 輸入 一行陣列,分別為a b c 輸出 a b c其中最大的數 樣例輸入 10 20 30 樣例輸出 30 提示 max ?

1005 - C語言程式設計教程第三版課後習題4.9

1005 - C語言程式設計教程(第三版)課後習題4.9 時間限制:1秒 記憶體限制:128兆 題目描述 輸入一個華氏溫度,要求輸出攝氏溫度。公式為 c=5(F-32)/9 輸出要求有文字說明,取位2小數。 輸入 一個華氏溫度,浮點數 輸出 攝氏溫度,浮點兩位小數 樣例輸入 -4

1003 - C語言程式設計教程第三版課後習題3.7

1003 - C語言程式設計教程(第三版)課後習題3.7 時間限制:1秒 記憶體限制:128兆 提交 題目描述 要將"China"譯成密碼,譯碼規律是:用原來字母后面的第4個字母代替原來的字母.例如,字母"A"後面第4個字母是"E".“E"代替"A”。因此,“China"應譯