C 選擇結構學案

2021-10-11 09:46:02 字數 2561 閱讀 2877

【學習目標】

熟練掌握 c++ 中的關係、邏輯運算子。

熟知關係、邏輯運算子和數**算符的優先順序。

學會正確使用選擇表示式。

【知識著陸】

1、關係運算子

使用關係運算子需要注意的問題

(1)「等於」與「賦值」的區別;

(2)實型資料(浮點數)的關係運算;

(3)運算子的優先順序,如下表:

例1、假設變數定義為「int x=6,y=4,z=5;」,請分別寫出下列表示式的值。

(1) x + y > y + z (2) 『 x 』 < 『 z 』

(3) x == x >= y (4) (x < y) >(y <= z)

2、邏輯運算子

邏輯運算子的優先順序問題

注意:a、整型資料在參與邏輯運算時,根據其值是 0 或非 0,分別當作邏輯值「假」或「真」進行處理。

b、在邏輯表示式的計算過程中,一旦能夠確定整個表示式的值,就會立刻停止計算。 (即短路計算)

閱讀程式,寫出程式的執行結果。

#include

using

namespace std;

intmain()

3、if語句

if 語句有兩種格式:

第一種格式為:

if (表示式) 語句1;

else 語句2;

第二種格式為:

if (表示式) 語句 ;

例1、旅遊費用。

【問題描述】

風華公司「南京一日遊」的收費標準為:5 人以內(含 5 人)按散客標準,每人 300 元;超過 5 人,按團體標準,每人 280 元。請根據輸入的人數,輸出其旅遊費用。

【輸入格式】

一行乙個正整數 n,表示人數,1≤n≤5000000。

【輸出格式】

一行乙個正整數,表示需要的總旅遊費用。

【輸入樣例】

9【輸出樣例】

2520

【問題分析】

這是乙個「選擇性」問題,根據人數 n 來選擇不同的收費標準。條件就是 n≤5,如果成立,那麼收費為 n×300;否則,收費為 n×280。

#include

using

namespace std;

intmain()

或換成另一種形式:

#include

using

namespace std;

intmain()

4、if 語句的巢狀

在分支結構中經常會遇到這樣的情況:如果條件1成立,就去做a事情,否則去做b事情,但是,在做a事情(或者b事情)時,還要根據條件2是否成立,決定是做a1(或者b1)這件子事情,還是去做a2(或者b2)這件子事情。在程式設計中,把這種情況稱為分支結構的「巢狀」,一般用來解決三種及以上的分支情況。

例1、 三個數的大小比較。

【問題描述】

輸入三個整數 x、y、z,判斷其是否滿足 x≤y≤z。若滿足,輸出「yes」;否則,輸出「no」。

【輸入格式】

一行三個整數 x、y、z,int 範圍以內。

【輸出格式】

一行乙個單詞,表示答案。

【輸入樣例】

3 6 7

【輸出樣例】

yes【問題分析】

前面已經介紹過用邏輯表示式「x<=y &&y<=z」來表示yes」的條件,本題也可以用 if語句的巢狀來解決,如圖:

#include

using

namespace std;

intmain()

使用 if 語句的巢狀需注意的問題

(1)分支結構可以巢狀很多層;

(2)if 與 else 的配對關係;

(3)程式設計要形成良好的**風格;

資料結構學習 選擇排序

演算法描述 選擇排序的思想是初始化最小索引為0,每趟遍歷選出最小的元素與最小索引的值進行交換,然後是最小索引加1,第二趟遍歷出剩下元素中最小的元素,繼續與當前索引的元素交換,依次類推,直到所有元素排列完成。相比於氣泡排序,選擇排序的優點在於每次遍歷只需要交換1次。演算法時間複雜度 最好情況 o n ...

c 資料結構學習筆記

c 資料結構學習筆記 1 關於類的建構函式 在建構函式前加上explict關鍵字 就可以使建構函式只可以顯式呼叫,而不可以隱式呼叫。下面的例子說明的很清楚 classtest1 普通建構函式 private int num classtest2 explicit 顯式 建構函式 private in...

C 控制結構學習筆記二

條件結構 if and else 例一 if x 100 else 例二 if x 0 cout x is positive。n else if x 0 cout x is negative。n else cout x is 0.迴圈結構 while迴圈,例一 include int main co...