中學資訊奧賽第五課 順序結構程式設計

2021-08-22 12:12:00 字數 1244 閱讀 7831

順序程式結構就是cpu從頭到尾逐行執行,沒有分叉(分支),也沒有跳轉(迴圈尾部跳到頭部),是最簡單的執行方式。

例題:三位數反轉

輸入乙個三位數,分離出它的百位、十位和個位,反轉後輸出。

樣例輸入:

樣例輸出:

分析:首先讀入變數n,然後進行分離。百位n/100(注意取的商的整數部分),十位等於n/10%10(這裡的%是取餘數操作),個位等於n%10.程式如下:

#include

int main()

注意程式中沒有using namespace std; 這句,是因為我們基本使用的是c 的io庫,c是不支援namespace的,所以不需要。只有c++的標準庫如iosteam才是std的命名空間。

注意這個題目沒有交代清楚細節,如果個位是0,反轉輸出格式如何?比如輸入520,輸出是025還是25?如果競賽中遇到這類問題,應該向老師問清楚,避免理解錯誤。這兩種輸出的方法都應該學會。

上面程式輸出025,如何輸出25呢,只要判斷個位n%10是否為0即可,但這需要if/else的分支語句,還沒學。那就把結果存放到乙個變數m中,用%d格式輸出m即可得到25,如果還想輸出025也容易,printf很強大,輸出格式改為%03d即可。

#include

int main()

昨天和小同學討論的乙個作業題:交換變數

輸入兩個整數a和b, 交換兩者的值,然後輸出

樣例輸入:

824 16

輸出:16 824

分析:輸入存入變數a,b,然後交換,如何交換,最常用的辦法是通過第三個變數:

#include

int main()

通過t倒一下就完成了交換。

不借助變數呢?

#include

int main()

這有些難理解,其實是對賦值語句的練習,解釋一下:

程式依次執行,為了避免值和變數名混淆,假定使用者輸入的是a0和b0,scanf語句執行完後a=a0,b=b0

執行完a=a+b後:a=a0+b0, b=b0

執行完b=a-b後:a=a0+b0, b=a0

執行完a=a-b後:a=b0, b=a0

可以通過dev c++單板跟蹤看看變數的變化。單板跟蹤大家會嗎?就是用滑鼠在行上設定斷點,然後在下面選擇除錯按鈕

當然如果競賽是機器閱卷,不關心是否真正互動,可以直接修改輸出順序即可:

#include

int main()

我們的目的是解決問題,不是為了寫程式而寫程式。

C 第五課 迴圈結構

迴圈結構 一 while語句 while語句寫法 while 表示式 語句 作用 反覆執行語句 迴圈體 直至 表示式 不成立。迴圈體為多條語句時,使用復合語句 二 for語句 for語句寫法 for 表示式1 表示式2 表示式3 語句 特別注意迴圈控制變數 就是決定迴圈執行次數的變數 的使用 一定要...

NOIP資訊學奧賽 普及組第五課 「小數小數」

編寫程式時,可以把題目寫入程式注釋,一邊讀題一邊做。我們來看西下面這道題1031 入門 溫度轉換 題目描述 編一程式,將攝氏溫度換為華氏溫度。公式為 f 9 5 c 32。其中f為華氏溫度,c是攝氏溫度。輸入輸入一行,只有乙個整數c 輸出輸出只有一行,包括1個實數。保留兩位小數 int c 攝氏度 ...

C語言學習第五課 C語言迴圈結構

1,迴圈的基本概念 可以反覆執行的 塊 2,while迴圈結構 includeint main return 0 3,do while迴圈結構 includeint main while 條件表示式 return 0 4,for迴圈 includeint main return 0 注意 雙層迴圈時...