C語言----選擇結構(基礎篇三)

来源:https://www.cnblogs.com/httpcc/archive/2019/05/11/10847486.html
-Advertisement-
Play Games

大家好,忙裡抽空更新一下自己的博客,算是自己的一個進步,C語言視頻啟蒙我早就看完啦,只是覺得這個視頻真不錯,所以給大家分享一下,同時自己還有很多沒有理解透徹,寫寫博客算是一個筆記更是對自己所學的知識的吸收,廢話不多直接開始今天的主題,"C語言的選擇結構" 關係運算符 小於:< 大於:> 等於:= = ...


大家好,忙裡抽空更新一下自己的博客,算是自己的一個進步,C語言視頻啟蒙我早就看完啦,只是覺得這個視頻真不錯,所以給大家分享一下,同時自己還有很多沒有理解透徹,寫寫博客算是一個筆記更是對自己所學的知識的吸收,廢話不多直接開始今天的主題,"C語言的選擇結構"

  關係運算符 

    小於:<

    大於:>

    等於:= =

    小於等於:<=

    大於等於:>=

    不等於:!=

  邏輯運算符

    非:!

    與:&&

    或:||

  假設x=1,y=2,x1=3,y1=4,那麼x>y||x1<y1的結果是真還是假?!(x>y)&&x1<y1呢? 參考答案:真、真

  x>y(false) 或 x1<y1(true) 結果為 true

  !(x>y)(假取反為真) 並且 x1<y1(true) 結果為 true

  簡單運算符  

  =號是最常用的運算符,在數學表達式中a=a+1是錯誤的,而在電腦中,這表示將a的值加上1再賦給a,如果a原來是5,經過這種運算後,a會變成6。也是就是說=號在電腦中表示“賦值”,它會將右邊的“計算結果”裝進左邊的“變數”。

  a=a+1也是經常用的運算符,C語言為了方便,便使用a++這種運算符來計算a=a+1a--來計算a=a-1。也就是說,++代表變數自身加1--代表變數自身減1

  運算符優先順序

括弧

!(非)

算術運算符

關係運算符

&&||

賦值運算符(=

 |

 |

 |

 ∨

 

  算術運算:*/  高於  +-

  關係運算:>>=<<=  高於  = =!=

  邏輯運算:!高於&&高於||

  一首記憶詩:     

  1括弧成員第一        

  2全體單目第二

  3乘除餘三,加減四

  4移位五,關係六

  5等於()不等排第七

  6位與異或和位或

  7"三分天下"八九十

  8邏輯或跟與

  9十二和十一

  10條件高於賦值

  11逗號運算級最低

  解釋:

  1括弧運算符[]() 成員運算符.  ->

  2所有的單目運算符比如++--+()-() ~(位反)、指針運算*&!

  3這個""是指取餘運算即%

  4移位運算符:<< >> ,關係:> < >= <=

  5= = !=

  6這幾個都是位運算: 位與&異或^位或|

  7、接上一句:它們分別排 7 8 9

  8邏輯運算符:|| &&

  9註意順序:優先順序(||)  底於 優先順序(&&)

  10三目運算符:?優先順序排到13 位只比賦值運算符和","

  11逗號運算符優先順序最低

  脫括弧: 

  (a>b) && (x>y) 可化簡為:a>b && x>y

  (a= =b) || (x= =y) 可化簡為a= =b || x= =y

  (!a) || (a>b) 可化簡為 !a || a>b

  if語句

    if(表達式)

    {

      若幹語句

      …

    }

  程式1

  用戶輸入2個數,按從大到小的順序將它輸出

/*3_1 if 語句:用戶輸入兩個數字,按從大小的順序將他們輸出在屏幕上*/
#include <stdio.h>
main()
{
    int a, b, c;            //a b 為比較的數,c為臨時交換變數
    scanf_s("%d%d", &a, &b);    //輸入兩個數
    
    //下麵的作用就是:如果第一個數大於第二個數就交換他們的值
    if (a<b) {
        c = a;
        a = b;
        b = c;
    };
    printf("%d%d\n",a,b);    //輸出交換後的值

    system("pause");
}

  變化一:

    格式:

      if(表達式)一條語句;

      註意:

      if(a>b)a++;b++;

      相當於

      if(a>b)

      {

        a++;

      }

      b++;

      而不是

      if(a>b)

      {

        a++;

        b++;

      }

   

  變化二(二選一):

    格式:

      if(表達式)

      {

        若幹語句

        …

      }

      else

      {

        若幹語句

         …

      } 

  變化三:

    格式:

    if(表達式)一條語句; else 一條語句;  

 

  程式2

  用戶輸入2個數,按從大到小的順序將它輸出的第二種解法

/* 3_2_ if  用戶輸入兩個數,數字按從大到小的順序將他們輸出屏幕上面*/
#include <stdio.h>
main()
{
    int a, b;                        //定義兩個變數從鍵盤上面接收
    scanf_s("%d%d", &a, &b);        //輸入兩個數值
    if (a>b) {
        printf("%d%d\n", a, b);        //按順序輸出
    }
    else
    {
        printf("%d%d", b, a);        //倒序輸出
    };

    system("pause");
}

  單目運算符和雙目運算符   

    當前上面的運算符中,++--、!都為單目運算符。其實減號運算符也可作單目運算符,它加在表達式(表達式可包括常量、變數)左邊,表示取它的相反數。

    雙目運算符的兩邊必須都要有表達式

 

  程式3

    輸入一個整數,列印出它是奇數還是偶數(學習%的使用)

/* 3_3_輸入一個數,列印在屏幕上是奇數還是偶數*/
#include <stdio.h>
main()
{
    int a;
    scanf_s("%d", &a);        // " % " :在scanf函數中表示格式控制
    if (a%2 == 0 ) {        //  " % ":在if語句中表示餘數計算
        printf("%d是偶數\n", a);
    }
    else
    {
        printf("%d是奇數\n", a);
    };
    system("pause");
}

  程式調試技巧  

  程式調試: VS2015 調試的方式自己百度一下,我對這個工具也是剛剛入門,所以沒什麼分享給大家,但是總體使用感覺不用不是很舒服,網上那些快捷方式在我的電腦上都沒作用,也有可能之前自己用VScode習慣的原因吧。

  如果是用的VC6++,可以用下麵的方式:

    F9:設置斷點

    F5:運行至斷點

    F10:單步執行

    F11:單步執行至函數內部

 

  在VC中書寫程式時如果不小心拼錯了某個關鍵字或漏了什麼標點標號等等,這叫語法錯誤。這時按感嘆號時在編輯器的下麵會報錯,查找錯誤的方式就是在報錯欄中找到帶error的行,再雙擊它,代碼欄就會出現一個藍色箭頭指向錯誤行,再在錯誤行的附近查找語法錯誤並修正它。

  作業  

  上機改錯題:輸入兩個數,求出它們之中最小的數輸出

  #include “stdio.h”

  main()

  {

    int a,b;

    /**************found***************/

    scanf(“%d%d”,&a,&b);

    if(a>b)

    {

    /**************found***************/

          printf(最小的數為%d,a);   // 裡面沒加 " ", 邏輯錯誤

    }

    else

    {

        printf(“最小的數為%d”,b);

    }

  }

  以上紅色的部分是錯誤的!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 電腦程式中涉及到的概念都比較抽象、專業。經常有初學者程式的人反應說,“別人說的什麼名詞性的東西,根本不明白是什麼意思”。的確,掌握一些開發相關的概念,與別人溝通起來非常的方便。對於初學者經常問的問題,做了個總結,希望給大家帶來幫助。 Q:經常聽到有人說,電腦語言可以歸為面向過程語言和麵向對象語言 ...
  • 常見的演算法設計策略 1.分治 分治法的設計思想是,將一個難以直接解決的大問題,分割成k個規模較小的子問題,這些子問題相互獨立,且與原問題相同,然後各個擊破,分而治之。 分治法常常與遞歸結合使用:通過反覆應用分治,可以使子問題與原問題類型一致而規模不斷縮小,最終使子問題縮小到很容易求出其解,由此自然導 ...
  • 一 對象的記憶體佈局: 在HotSpot虛擬機中,對象在記憶體中存儲的佈局可以分為3塊區域:對象頭(Header),實例數據(Instance Data)和對齊填充(Padding)。 HotSpot的對象頭包括兩部分信息,一部分存儲對象運轉時自身信息,例如hashCode,GC分代年齡,鎖狀態標誌,線 ...
  • info.m ff.m 測試代碼 ...
  • 緣起 本項目是基於之前學習的一個Dubbo+SSM分散式項目進行升級,基於此項目對前後端分離項目、微服務項目進一步深入學習。之前學習了vue、springBoot、springCloud後,沒有進行更多實戰練習,藉助此機會,整合之前所學知識,搭建一套微服務電商系統。本項目純屬個人學習總結,如有錯誤之 ...
  • 在c語言中實現全排列,對於剛接觸c語言,還沒學習演算法的人來說,比較困難了吧。估計大佬也不會看這種基礎的東西,全排列實現的辦法很多,在c++中有一個專門的函數可以使用,但是在c中實現就有點困難了。如果你想出用一個迴圈使一個數字每一位都不相同,那麼你就走進了死衚衕,這種辦法運算量巨大,往往到了高位就會超 ...
  • 轉自:PHP在無限分類時註意的一些問題(http://lxiaoke.cn) (註意:代碼使用的是原生PHP,旨在提供解決思路)1 無限分類的查找(獲取所有節點) 代碼: /** * 無限分類查詢,預設 pid 為 0 * @param $pid * @return array $res */ pr ...
  • JAVA流程語句有幾下幾種: 一、if語句: 1.if語句:如果滿足條件語句,則執行執行語句; if(條件語句){ 執行語句; ....; } 2.if....else語句:如果滿足判斷語句,則執行執行語句1,否則執行執行語句2; if(判斷語句{ 執行語句1; .....; }else{ 執行語句 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...