用實例帶你了解C語言的靈魂:算法基礎算術運算符和算術表達式

2020-12-12 酒館小二說王者

從今天我決定改變一下講解的方式,因為純文字誰不會呢?照著書本來搬,就什麼都來了,我們根據不同的算法代碼來講解不同的知識點。

我們已經開始接觸算法,那我們就出題目來進行一個操作:

第一題:一輛貨車運輸箱子,載貨區寬2米,長4米;一個箱子寬1.5米,長1.5米,請問載貨區一層可以放多少個箱子呢?(箱子的數量是一個整數,不存在半個箱子)。

我們根據題目來分析,首先我們得定義兩個整型變量,一個是載貨區的長Long1、一個是載貨區的寬WIDE1,還需要定義兩個浮點型的變量箱子的長Long2、寬WIDE2。那麼我們看下圖的代碼

我們今天講的是類型的轉換和優先級,還會了解一些運算符和自加、自減的內容。

首先我們看上圖代碼,

第一行頭文件,每個程序都需要有的預處理命令#include<stdio.h>,這個在之後我們會專門的講解。

第二行main函數,每個C的源程序不論由多少個文件組成,它都有且只能有一個主函數main。

第三行開始就是我們今天講的重點,這裡定義的是整型變量的長和寬:WIDE和Long,箱子的長和寬,數值是1.5,我們定義為實型的變量(也叫做浮點型)用f,那麼我們現在看剛才的題目,題目最後的補充是不可能會有半個箱子,那麼最後的變量定義為整型,可是這裡需要浮點型和整型一起進行計算,那樣我們需要怎麼辦呢?

因為數值類型有很多種,字符型、整型、浮點型等等,這些類型的變量長度和符號的特性都不同,所以取值也就不同,之前講了我們把短數值類型的變量比喻成小水杯子,長數值類型的比喻成大水杯子,那麼你從小水杯子給大的杯子裡倒水,那麼能容下,所以數據什麼都不會丟失,可是當你從大的往小的裡面倒水呢?會溢出來的,那麼這個轉換我們應該怎麼去呢?

就比如剛才的算法的代碼:

int WIDE= 2, Long= 4;

float f=1.5;

我們把float(浮點型)賦予int(整型)的變量中去,按照常規的寫法應該是如下:

int number = (int)(WIDE/ f) * (int)(Long/ f);

我們在每一個的前面都加了(int)這是什麼意思呢?

(類型名稱)(表達式)

這個屬於強制性轉換,在短數值向高數值轉換的時候有時候編譯器就會自動轉換,但是有時候就會出現警告,只用強制轉換之後,這個警告就沒有了,但是你要注意的是如果你需要是一個表達式的值進行強制轉換,那麼你需要把這個表達式給括起來,不然它只轉換第一個!

上面說的是自動類型轉換和強制類型轉換,下面我們講優先級和結合性

講優先級之前我們先來了解一下算術運算符:

C語言中有兩個單目算術運算符、5個雙目運算符,在五個雙目運算符中的級別劃分應該是乘法、除法和取模的級別高於加法和減法,單目運算符的級別是最高的。

加減乘除就不用講了,這個%取模是計算兩個整數相除所得到的餘數,取模的兩側都為整數,比如7%4結果就為3。還有一點是「-」在5-3中是減法,此時為雙目,在-5是為負值,此時為單目。

那麼什麼是算術表達式,就是表達式中使用了算術運算符的稱為算術表達式,比如:

(int)(WIDE/ f) * (int)(Long/ f);

這個就是算術表達式,算術表達式的優先級,*、/、%大於+、-,比如說x+y*z那麼計算機會先編譯y*z後計算x+它倆相乘的值,如果都是平級的話就比如x+y-z,那麼計算機採用的是由左往右的結合方向計算,就是先計算x+y的值後-z,比如說我們要想先讓計算那個的值,我們就可以加括號,括號內的優先計算,就比如int number = (int)(WIDE/ f) * (int)(Long/ f);這個就是先計算(WIDE/ f)、(Long/ f)這兩個的值後相乘的。

最後在帶大家了解自增和自減,自增++,自減--,自增的意思是自己加1,自減的意思就是自己-1這個可以由前綴和後綴的比如自增A++、++A,自減A--,--A,那麼這兩種寫法的區別在於

B=A++的意思是B=A,A=A+1,比如說A=3,那麼B=3

B=++A的意思是A=A+1,B=A,比如說A=3,那麼B=4

注意:自增和自減屬於單目運算符,常數和表達式不可以進行自增,自減的運算。例如3++和(x+3)++都是不合法的!

今天我們就學到這裡,不知道這種根據實例的方法大家是否喜歡,喜歡就希望你們能關注我哦,另外給大家福利,需要編程軟體的我免費送哦。

相關焦點

  • Python語言教程算術運算與算術表達式的介紹
    Python語言教程算術運算與算術表達式的介紹 Python語言教程在算術運算符與算術的表達方式是我們值得學習的知識。下面我們就來詳細的看看Python語言教程中的相關信息。
  • C語言中的運算符和表達式
    二、算術運算符和算術表達式對計算機中數據進行算術運算的運算符,稱為算術運算符,包括數學中學到的加減乘除和一些擴展。7、括號()與數學上的括號一樣,能改變運算的順序。8、算術表達式使用算術運算符將運算對象連接起來、符合C語言語法規則的式子。
  • [GO語言基礎] 四.算術運算、邏輯運算、賦值運算、位運算及編程練習
    因此從今天開始從零講解Golang程式語言,一方面是督促自己不斷前行且學習新知識;另一方面是分享與讀者,希望大家一起進步。前文介紹了Golang的變量、數據類型和標識符知識,並通過編程練習進行提升。這篇文章將介紹運算,包括算術運算、邏輯運算、賦值運算、位運算及編程練習。
  • 單片機c語言教程:運算符和表達式(關係運算符)
    = 等於或者你是個非 C語言 程式設計師,那麼對前四個一定是再熟悉不過的了。而「==」在 VB 或 PASCAL 等中是用「=」,「!=」則是用「not 」。小學時的數學課就教授過運算符是有優先級別的,計算機的語言也不過是人類語言的一種擴展,這裡的運算符同樣有著優先級別。前四個具有相同的優先級,後兩個也具有相同的優先級,但是前四個的優先級要高於後2個的。
  • 單片機c語言教程第七章--運算符和表達式(關係運算符)
    單片機c語言教程第七章--運算符和表達式(關係運算符) 佚名 發表於 2009-04-15 09:37:37 關係運算符,同樣我們也並不陌生。
  • php中的算術運算符和遞增遞減運算符怎麼使用?
    一元運算符只運算一個值,比如說++或者--。二元運算符可以運算兩個值,在php中大部分都是二元運算符。三元運算符可以運算三個值,三元運算符只有一個「?:」。根據運算符的功能可以分為算術運算符、字符串運算符、賦值運算符、比較運算符、邏輯運算符、位運算符、其他運算符七大類。算術運算符是php中常用的運算符,常見的數據操作符,處理加、減、乘、除、取餘等運算,如下圖所示。
  • 單片機c語言教程:C51運算符和表達式
    這個語句就是 typedef,這是個很好用的語句,但我卻不常用它,通常我定義變量的數據類型時都是使 用標準的關鍵字,這樣別人能很方便的研讀你的程序。如果你是個DELPHI 編程愛好者或是DELPHI程式設計師,你對變量的定義也許習慣了DELPHI 的關鍵字,如 int 類型常會用關鍵字Integer來定義,在用 單片機c語言時你還想用回這個的話,你能這樣寫:本文引用地址:http://www.eepw.com.cn/article/170888.htmtypedef int integer;
  • java基礎案例之java語言運算符算術賦值比較邏輯三元和位運算
    java運算符包含以下6種:1:算術運算符。 2:賦值運算符。 3:比較運算符。 4:邏輯運算符。 5:位運算符。 6:三元運算符。賦值運算符重點理解下連續多變量賦值:int a, b, c;a=b=c=5;
  • Bash shell中四種算術運算方式的區別與聯繫簡介
    在bash shell中,整數的運算也會偶爾遇到。為了徹底弄清其中的奧秘,我們通過實例驗證的方式來探索一下常見的四種運算中的區別與聯繫。實例驗證之前,我們來定義一組變量,並對其賦值:[root@GeekDevOps ~]# a=9;b=13;c=-1;d=+4;e=7.2[root@GeekDevOps ~]# echo $a $b $c $d $e9 13 -1 +4 7.2一、exprexpr
  • 《第3章 Python 運算符與表達式》3.1.1 算術運算符!
    《高中信息技術 Python編程》 教學案 《第3章 Python 運算符與表達式》3.1.1 算術運算符!3.1.1、算術運算符: 常規: + - * / 編程實例:原始碼:python = 95 # 定義變量,存儲Python的分數english = 92 # 定義變量,存儲English的分數c = 89
  • 使用C/C++進行加減乘除算術運算
    算術運算符作用:用於處理四則運算算術運算符包括以下符號: double d2 = 0.25; cout << d1 / d2 << endl; system("pause"); return 0;}總結:在除法運算中
  • Java 算術運算及其優先級講解,可以說很詳細了
    ;兩個數值相加表示數學中的加法運算;除號(/):整數在使用除號操作時,得到的結果仍為整數,小數部分會被直接忽略,而不是四捨五入,但是當整數除以0的時候,會引發算術異常(ArithmeticException)。
  • C的基礎:帶你們接觸運算符和表達式(一)
    學習代碼是很枯燥的一件事情,而且又很傷神,你是否熱愛呢?這兩天有點事情沒有更新,今天開始,絕對不會斷更了!!!之前講的都是認識這個程序,今天我們就開始接觸基礎的運算符和表達式了。C的運算符大致分為這麼幾類:1. 算術運算符:用於各類數值運算。
  • C語言中的三目運算符是啥?有何用處?
    一般來說,C語言中的三目運算符為a?b:c即有三個參與運算的量。由條件運算符組成條件表達式的一般形式為:表達式1?表達式2: 表達式3求值規則為:如果表達式1的值為真,則以表達式2 的值作為條件表達式的值,否則以表達式2的值作為整個條件表達式的值。 條件表達式通常用於賦值語句之中。
  • c語言運算符號
    C語言運算符號指的是運算符號。C語言中的符號分為10類:算術運算符、關係運算符、邏輯運算符、位操作運算符、賦值運算符、條件運算符、逗號運算符、指針運算符、求字節數運算符和特殊運算符。注意事項運算符號的優先級總個數34 種相關概念優先級、結合性種類算術運算符用於各類數值運算。
  • 學員問:C語言入門要掌握哪些基礎知識?
    01C語言程序的結構認識用一個簡單的c程序例子,介紹c語言的基本構成、格式、以及良好的書寫風格,使小夥伴對c語言有個初步認識。由於在內存中字符以ASCII碼存放,它的存儲形式和整數的存儲形式類似,所以C語言中字符型數據與整型數據之間可以通用,一個字符能用字符的形式輸出,也能用整數的形式輸出,字符數據也能進行算術運算,此時相當於對它們的ASCII碼進行運算。
  • C語言入門教程運算符
    C語言提供了以下類型的運算符:算術運算符關係運算符邏輯運算符位運算符賦值運算符條件運算符其他運算符2.算術運算符算術運算符分為單目運算符和雙目運算符,單目運算符表示只需要一個操作數,雙目運算符需要兩個操作數。
  • c語言基礎語法五:運算符與表達式
    4.逗號運算符比如:int a, b, c;定義了三個變量。[,]運算符,它沒有具體的運算規則,一般起一個分隔的作用。intnNum = 10;nNum=10, 20, 30;運算完畢之後,nNum等於10,因為=運算符的優先級更高。nNum= (10, 20, 30);運算完畢之後,nNum等於30,因為先算括號裡面的,逗號表達式的值是最後一個數的值,所以(10, 20, 30)的結果是30,然後再賦值。
  • C語言入門基礎知識大全
    用一個簡單的c程序例子,介紹c語言的基本構成、格式、以及良好的書寫風格,使小夥伴對c語言有個初步認識。8.2 算術表達式和運算符的優先級與結合性—算術表達式是用算術運算符和括號將運算量(也稱操作數)連接起來的、符合C語言語法規則的表達式。運算對象包括函數、常量和變量等。
  • C語言基礎知識整理
    例如,字符 ′A′ 的ASCII碼為65,在內存中的存放形式如下:01000001由於在內存中字符以ASCII碼存放,它的存儲形式和整數的存儲形式類似,所以C語言中字符型數據與整型數據之間可以通用,一個字符能用字符的形式輸出,也能用整數的形式輸出,字符數據也能進行算術運算,此時相當於對它們的ASCII碼進行運算。