最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

如何用輕小說的方式學(xué)C++(三) 天秤(下)

2019-08-03 00:54 作者:汐留楓Channel  | 我要投稿

放學(xué)后,剎那直奔部室,開門,便見到惱羞成怒卻又有些梨花帶雨的凜音以及旁邊笑岔氣的久遠(yuǎn)。見剎那進(jìn)了部室,久遠(yuǎn)補(bǔ)刀:

“剎那啊,你說100升水和100升油哪個重?”

“誒?水的密度比油大吧,所以肯定水更重???”

“然而你的師傅似乎不這么認(rèn)為。那剎那,100升醬油和100升油哪個重?”

“醬油密度大于水大于油吧,肯定醬油更重啊。”

“你的師傅似乎認(rèn)為醬油就是油呢?!?/p>

“夠了?。?!閉嘴?。。 眲C音咆哮。


“那么我們今天就開始寫比較程序吧?!?/p>

#include<iostream>

int main() {

????int a,b;

????std::cin>>a>>b;

????if(a>b) {

????????std::cout<<a<<">"<<b<<std::endl;

????}

????else if(a==b) {

????????std::cout<<a<<"="<<b<<std::endl;

????}

????else {

????????std::cout<<a<<"<"<<b<<std::endl;

????}

????return 0;

}

int a,b;

“剎那還記得int是啥嗎?”

“整數(shù)?!?/p>

“對,整數(shù)。a和b是定義的變量,專門存整數(shù)的?!?/p>

“那變量不能存其他的東西嗎?”

“C++是一個強(qiáng)類型的語言。無奈,你一旦有int a;后,a只能存整數(shù)而不能存其他的東西了?!?/p>


“接下來是下一行,和std::cout輸出類似,std::cin從黑框框里面讀兩個整數(shù)進(jìn)來,給a和b,為什么是>>符號就等著以后再說吧。”

(不懂)

“比方說我現(xiàn)在寫一些東西,100 200 300 400,就可以把這看成一個流?!?/p>

(就當(dāng)它是這樣吧。)

“那我不就可以讀入兩個整數(shù)到a和b了嘛。a是100,b是200?!?/p>

“那300和400呢?”

“在緩沖區(qū)留著唄,等之后再讀數(shù)據(jù)才會讀進(jìn)來?!?/p>

(似懂非懂)


“接下來是今天的核心——if語句。”

“喔喔!”

“剎那有沒有曾經(jīng)后悔過什么?”

“唔——有喲?!?/p>

“誒?比如?”

“當(dāng)初不該好奇打開這個活動部室的門~”

咳——凜音噴出一口老血。

“好了好了開玩笑的啦~這里挺好的,而且還學(xué)了不少的東西呢?!?/p>

剎那摸了摸梨花帶雨的凜音的頭。“なでなで”

“嗯...比如說之前不小心游戲氪金氪多了,這個月生活費(fèi)有點(diǎn)吃緊呢?!?/p>

“誒?剎那醬缺多少錢我墊著?”

“啊沒事,剛好最近要減肥,少吃點(diǎn)就少吃點(diǎn)吧?!?/p>

“咳咳。if的意思就是,如果怎么怎么樣,就怎么怎么樣?!?/p>

“這不是廢話嗎?”

“if后面跟一對小括號,里面寫著一個表達(dá)式;后面再跟一對大括號;當(dāng)且僅當(dāng)表達(dá)式結(jié)果不為0的時候執(zhí)行大括號里面的程序?!?/p>

“a>b這種也算表達(dá)式嗎?”

“說出來你可能不信,a大時表達(dá)式值是1,a小于等于時表達(dá)式值是0。”

“簡單粗暴的1嗎?”

“嗯。剎那知道‘非’運(yùn)算嗎?”

“嗯,是那個真的非是假,假的非是真?”

“那么,130的非呢?”

“誒?...0?”

“bingo~那0的非呢?”

“...1?”

“流石吾徒~”

“誒嘿嘿~”


“表達(dá)式之后會慢慢說,目前先學(xué) > >= < <= == +-*/ 運(yùn)算就行了。注意,運(yùn)算也是有優(yōu)先級的呢,比如5+3*2是11而不是16喲。個人建議,除去一眼就能看出來的優(yōu)先級外,其他的都還是用小括號括起來。”

“呃凜音醬啊,這個==是什么東西?為什么有兩個等號?”

“流石吾徒~盲生你發(fā)現(xiàn)了華點(diǎn)~那我先問,如果要給a賦值應(yīng)該怎么寫?”

“誒托,a=100; 這樣?”

“那判斷a和100是否相等呢?”

“a=100...哦?。》枦_突了!”

“嗯。所以,以后比較大小的時候可以寫100==a喲~把常數(shù)寫左邊?!?/p>

“誒?為什么?”

“你寫錯符號試試?”

“100=a...哦??!不可能給一個常數(shù)賦值呢?!?/p>


“扯得有點(diǎn)遠(yuǎn)了,我們回來。第一個if之后,后面又跟著了一個else if對吧?”

“嗯。”

“很簡單,如果不滿足第一個if卻又滿足第二個else if后面的表達(dá)式條件的話,會執(zhí)行這個里面。最后的else則表示如果前面的條件都不滿足,就執(zhí)行后面大括號內(nèi)的語句?!?/p>

“else if或者這個else都是必須的嗎?”

“不不不。你可以一個else if或者else都不寫,也可以一個if一個else if而沒有else,亦或若干個else if。但是要注意,你最多只能有一個else。當(dāng)然,如果你有多個if就相當(dāng)于是多個分支了?!?/p>

(似懂非懂)

“總而言之以后還有復(fù)雜的邏輯,到時候再說吧。這一次只有一個if-else if-else?!?/p>

(點(diǎn)頭)

“那么吾徒喲,寫一個找出三個數(shù)最大的那個數(shù)的程序吧~”

“...誒?”

“不要感覺很難,你先自己仿照著這個程序擴(kuò)充一下?”

剎那打開編輯器,開始敲起了代碼。

#include<iostream>

int main() {

????int a,b,c;

????std::cin>>a>>b>>c;

似乎一切順利,然而剎那突然犯了難:“凜音醬啊,有沒有什么運(yùn)算可以表示a大于b同時a大于c呢?”

“有的啦~是 && 號?!?/p>

“就是 ‘a(chǎn)nd 與’ 嗎?為什么要打兩個&號呢?”

“因?yàn)橛幸粋€按位與用的是一個&號。那個你暫時用不到,你用這個就行?!?/p>

“好~”

????if(a>b&&a>c) {

????????std::cout<<a<<"最大"<<std::endl;

????}

???? else if(b>a&&b>c) {

???? ???? std::cout<<b<<"最大"<<std::endl;

????}

???? else {

???????? std::cout<<c<<"最大"<<std::endl;

???? }

???? return 0;

}

“寫好了~”

“嗨~摸摸頭。”

“~~~今天可以結(jié)束了嗎?”

“可惜你的程序是錯的~”

“好的謝師傅...誒?錯的?”

“你輸 1 1 0 進(jìn)去試試?!?/p>


>> g++ 1.cpp

>> ./a.out

1 1 0

0最大


“噗——”剎那噴出一口老血。隨后重新看了一下自己的代碼,發(fā)現(xiàn)了問題。

“那凜音醬,這么改呢?”

???? if(a>=b&&a>=c) {

???? ????std::cout<<a<<"最大"<<std::endl;

???? }

???? else if(b>=a&&b>=c) {

???? ????std::cout<<b<<"最大"<<std::endl;

???? }

“這次就對了?!?/p>

“~誒凜音醬你這里的程序...”

“啊,是另一個寫法,你可以看一下?!?/p>

#include<iostream>

int max(int a,int b) {

???? if(a>b) return a;

???? else return b;

}

int main() {

???? int a,b,c;

???? std::cin>>a>>b>>c;

???? std::cout<<max( max(a,b) , c)<<"最大"<<std::endl;

???? return 0;

}

“等等凜音醬,你這個程序...信息量有點(diǎn)大?!?/p>

“我還沒用a>b?a:b呢?!?/p>

旁邊的久遠(yuǎn)看不下去,上來就用紙扇狠狠扇了凜音一巴掌:“學(xué)了點(diǎn)東西就開始跳,你給我來個編譯時期堆排序???”

凜音(土下座):“我錯了~”

“跪搓衣板到我講完這個程序?!?/p>

“誒?!”


久遠(yuǎn):“那么我來系統(tǒng)地解釋一下這里。剎那你知道過程的吧。”

“嗯,之前講過?!?/p>

“和main一樣,max就是個過程。輸入兩個整數(shù)a和b,輸出較大的那一個?!?/p>

“我看max后面的大括號里面有兩個東西,是參數(shù)吧?”

“對。”

“叫a和b的參數(shù)?”

“這里的參數(shù)你可以這么理解。我們都學(xué)過函數(shù)。f(x)=2x+3的話,那么f(3x+1)=2(3x+1)+3=6x+5,用實(shí)際參數(shù)替換形式參數(shù)?!?/p>

(懵逼)

“很顯然。max(a,b)不是會得到一個更大的那個數(shù)對吧?”

“對?!?/p>

“這個更大的數(shù)作為a,而c作為b,再次調(diào)用max過程。”

(似懂非懂)

旁邊的凜音用怨念的眼神盯著剎那,明顯是搓衣板跪不住了。

然而并沒有什么卯月。

“簡而言之就是替換?!?/p>

“替換?”

“我舉這么個例子:”

int div(int x,int y) {

????return x/y;

}

int main() {

????int x=100,y=200;

????div(y,x);

????return 0;

}

“剎那你認(rèn)為div(y,x)結(jié)果是多少?”

“呃,y到上面是x,x到上面是y,那div(y,x)=div(200,100)=2吧?”

“對,就是這么換的?!?/p>

“哦!”(光然大語)

“等等——if語句的小括號以及表達(dá)式之后,不是要大括號嗎?”

“要怪就怪你的師傅吧。準(zhǔn)確而言,后面是跟一條語句的,所以可以直接寫一條‘return a;’。當(dāng)有多條語句的時候,則使用大括號,將這多條語句‘打包’成復(fù)合語句,也就是有多行(當(dāng)然單行也行的)的時候需要使用大括號?!?/p>

“誒,還挺自由的呢。”

“就是太自由了才會有一堆破事呢?!?/p>

“誒?”

“比如過于自由,寫出諸如:”

int expression1=0,expression2=1,var1=0,var2=0;

if(expression1)

????var1=100;

????if(expression2)

????????var2=200;

“這樣下來后var1和var2分別是多少?”

“呃,expression1是0,所以不會執(zhí)行到里面的語句...所以最后都是0?”

“No No No,這其實(shí)是兩個并排的if,所以var2最后是200?!?/p>

“誒?”

“但是打上括號以后就不一樣了:”


if(expression1)? {

????var1=100;

????if(expression2)

????????var2=200;

}


“這個樣子的話就和你說的是一樣的,不會執(zhí)行到里面的語句。”

“哦哦哦。”

“那么,今天的作業(yè)?!?/p>

“哦...誒?”

“再不搞快點(diǎn)你的凜音醬的腿就要廢了喲~”

“誒好好,作業(yè)是什么?”

“輸入3個數(shù),輸出從大到小順序的結(jié)果?!?/p>

“誒不是挺簡單的嗎?”

“p.s.:寫完程序以后試一下這些數(shù):”

3 3 3

3 3 2

3 3 4

2 3 3

4 3 3

3 3 2

3 3 4

“看看上面這些數(shù)能不能正確輸出結(jié)果喲~”


剎那和久遠(yuǎn)高高興興地走出了活動部室。

凜音依舊在那跪搓衣板。

如何用輕小說的方式學(xué)C++(三) 天秤(下)的評論 (共 條)

分享到微博請遵守國家法律
鄂托克前旗| 黄平县| 合山市| 凉城县| 小金县| 湖北省| 翁牛特旗| 灵石县| 海南省| 浮梁县| 灵武市| 罗江县| 遂昌县| 鹤庆县| 合川市| 崇信县| 友谊县| 元朗区| 南木林县| 两当县| 宜丰县| 荥阳市| 桐柏县| 桐庐县| 长沙市| 滨海县| 定西市| 平南县| 嘉禾县| 绥棱县| 高雄县| 苗栗县| 威信县| 体育| 陆良县| 上蔡县| 东阳市| 喀喇沁旗| 隆德县| 论坛| 汉寿县|