程序東西版其實寫這篇本書我也充滿了憂郁因為語言確實很重要但是往往現(xiàn)在的_第1頁
程序東西版其實寫這篇本書我也充滿了憂郁因為語言確實很重要但是往往現(xiàn)在的_第2頁
程序東西版其實寫這篇本書我也充滿了憂郁因為語言確實很重要但是往往現(xiàn)在的_第3頁
程序東西版其實寫這篇本書我也充滿了憂郁因為語言確實很重要但是往往現(xiàn)在的_第4頁
程序東西版其實寫這篇本書我也充滿了憂郁因為語言確實很重要但是往往現(xiàn)在的_第5頁
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

前其實寫這篇本書,我也充滿了憂郁,因為C語言確實很重要,但是往往現(xiàn)在的學生學習的方向又很奇怪,追求要全面,也不管到scanf的多種輸入也沒有做解釋,比如用一個scanf函數(shù)可以輸入幾個變量的值,可以分別用逗號或者空格或者其他符號分開,本人覺在這里,我不得不感謝AFoolishGirl(Q: ),一個非常謙虛的一個小,卻對程序有如此的執(zhí)著,謝謝建議,本并在此表示真誠的感謝。但由于實際開發(fā)的習慣和編譯器的支持問題等原因,本書程序格式并未完全遵守C99標準,但絕對不影響學習,畢竟C99標準過去這10多年,主流編譯器也對此不是特感冒。本書采用的代碼格式,雖然完全符合目前國際大企業(yè)寫真的很力,希望大家少一些,多一些建議。謝謝。如果有問題,請發(fā)mail給我。鄙人姓王,名曉飛 此書免費,謹以此獻給所有愿意為程序而奮斗終生的朋友們,祝學有所成,為民族的強大,拿出自己的精神,做出自另外,作為一個程序員,希望都要勤動腦,經(jīng)常上網(wǎng)的同學都會發(fā)現(xiàn),經(jīng)常在某些聊天工具有一些信息轉(zhuǎn)發(fā),比如提醒什右下角的五星,這是他們在收集讓我們賠款。注意這里我用了灰色字體,因為寫這幾行字的時候,我的心都是灰色的,第一章程序這東就問我們聽懂了嗎,我們都是搖頭,然后老師就說,聽不懂就對了,聽懂了還要老師干嗎。幾年之后想起這句話,忽然感覺么究竟如何才能學好C語言呢?相信大家應該都看過版的《倚天屠龍記》吧,“動靜之機,陰陽之母,陰不離陽,陽不離陰”“無忌,你有九陽神功護體,學什么武功都特別快,太極拳只重其意不重其招,你忘記所有的招式,就練成太極拳那么,接下來,我們究竟應該怎么去學習程序,我們大家應該有一個大概的方向了吧?雖然這個方向也許感覺起來還比較朦朧,但是別忘了,朦朧也是一種美。就好比一個人剛學畫畫,畫出來的似像似不像,其實這個時候稱不上朦朧,頂多也只能叫糊,等到你能畫的非常清楚,那么你就會發(fā)現(xiàn)自己的水平到達一定的高度,會發(fā)現(xiàn)自己成為了高手,再看初學畫畫的,看看他們的畫,會覺得非常幼稚,等你再繼續(xù)畫下去,也許有一天,你會發(fā)現(xiàn)未必都是好的,你會發(fā)現(xiàn)唯美才是最終追求的,語言招式。一談到二進制,有些同學就,也許有些同學覺得這很容易理解,但是會者不難,難者不會,總會有那么一部分同學,對也只有0到9,沒有十這個表示,表示十的時候用了一個1一個0,其實已經(jīng)開始組合了,因為不能用一個字來表示十了啊。(注意示,整個應用過程中,始終沒有看見過一位數(shù)表達10。22對了,就是這么個意思,二進制表示的10,同學記住了,別再叫十了,叫夭零,你念壹零也行,為啥呀,因為你念十會讓人誤解,只有你自己的話,你愛怎么念你怎么念。廢話不多說,10下去是多少?那就是11,11下去呢,加1,我們來看看加法了1~10要是連這點都不知道,我謹代表的寫手,來鄙視你一下。程序在某種程度上來說,它就是生活,不,應該用他,強壯威武而《蠟筆小新》第一集,還記得是什么嗎?對了——買東西。按照的文化,真不知道新之助的老媽是怎么搞的,怎么能在招待客人吃飯那天忘了買肉餡和蘿卜。正做飯呢,醬油也用沒了,于是小新隆重登場,拿著寫的紙條,肉餡、醬油、白蘿卜。結(jié)果小新提著籃子就跑了,到了一家店,才有了下面一段:“你好啊”“歡迎光臨,幫買東西啊?”“我要買餡”“我們這里不賣”“那我買白蘿卜”“也不賣白蘿卜”“那我買醬油”終于哭了,“醬油也沒有啊”于是小新很郁悶,最終了很經(jīng)典的評論:“什么都沒有還開什么店??!”處于邊緣的不住了“什么呀,我這兒是賣魚這段看起來十分搞笑的片段,說明了什么?仔細想,原來不熟悉業(yè)務是可怕啊,小新由于業(yè)務不熟練,辦事肯定目的不明確,這也是很多企業(yè)不愿意要大學生的原因,為啥,業(yè)務不熟練啊。技術(shù),讓干啥都要試著去做,不知道如那么有同學說了,聽說企業(yè)開發(fā),都是有需求分析的。好了,我們繼續(xù)往下看。小新走呀走,又走到了一家店,是個可愛的PPMM,“歡迎光臨!”妹妹就是溫柔,說出話來聽起來感覺就是一個字:舒坦!小新于是開始下面的“我要買餡”“好啊,你要買多少呢?”漂亮妹妹依然很溫柔,結(jié)果小新汗出來了,是啊,買多少呢?于是說“買兩朵好了”姐姐一聽樂了,問“你沒有告訴你要買幾斤嗎?”“幾斤?”小新問,心里想,的什么時候還有這個單位???難道肉不是論朵的?忽然醒悟,哦,肉可能就是論斤的,于是恍然大悟。姐姐一看樂壞了,趕緊問,“想起來了沒有,要買幾斤?”“她沒說”看來小新的確是想起來了,但是客戶的需求,那也沒辦法,于是,姐姐無奈的說“這就沒辦法了,小弟弟,啊,打回家問問你好嗎?“嗯”小新都是很配合的男,姐姐一聽,恩,總算有辦法,于是問“是多少?”這下,不知道姐姐也累得不輕,要是表達清楚了,還好,謝天謝地,沒有表達清楚,哥哥慘了,費了不少力氣,除了肚子更餓了,啥作用都沒有。于是C不用天天防備后面有人用棍子了,溫柔的哥哥也不用跳得死去活來的,只要走過去,對姐姐說一個字“愛”,姐姐馬上就知道咋回事。說語的出,要啊所說,C語的現(xiàn)終讓程邁了明,序類史具劃代的意程發(fā)文。還真夠難的啊,這女人下一步還想干嗎還不知道呢。剛點火,姐姐又說話了“烤肉”,于是哥哥基本上快明白兒的意思了,用這么麻煩了。為啥呀?語言進步了吧,只要說“請我吃飯”,你看他不的請你才怪。而且現(xiàn)在的語言發(fā)展很厲害,一句話,氣問子,“你想吃什么?”子又是一個字“你猜!”。所以說高級語言有高級語言的不好,為啥呀?效率低啊。哪有老們打獵來的速度,起碼總是能在第一時間內(nèi)知道該做什么,沒有費神的其他動作。而我們現(xiàn)在為吃個飯還要的 TurboC2.0,所以呢我就介紹這個吧,看如下步驟,等你開始寫程序的時候回來再看也可以,不CtrlF9,AltF5看到以上有三個主要路徑。我的TC.EXE路徑是E:\TURBOC2\TC.EXE。所以我做了如上設(shè)定,前面部分E:\TURBOC2修改完,敲回車,最后別忘了再選擇Options下面的Save項,彈出一個 否覆蓋(Y/N),直接按Y即可。第二章哥寫的不是程序會有一個總,誰呀?那就是我們的校長哥。上級來給任務,會不會來找到每個負責的老師一個個的分任務???顯然是不會的,那么也就是說,總會有一個總,任務分給他,然后具體學校怎么完成任務,那就不管了。那么,其實程序也一樣,你那么總總該有個明確的名字吧。真名總是不太合適,為什么?假設(shè)我們教育界有了新,于是或者寶出來分配任務了,他們會說,各大院校的校長,要積極做好某某工作,配合國家教育政策,保障國家教育的順利進行。如果要說名字,那慘了,那么或者估計要累壞了,他們要說,各大院校,某某校的王某某校長,某某校的張某某校長……要積極做好某某工作……,這樣的,豈止上千所高校?我估計一次下來,就再也不會有人熱衷于回頭再想想我們學過的函數(shù),f(x)2x1說了,就這么簡單嗎?是啊,就這么簡單,簡單的超乎你的想象。這個名字不會變,記住了哦,main(),這就是程序的主函數(shù),當你打開一個C語言編寫的程序,那么總會先找到這個main()函數(shù),別說哥沒告訴你,哥只是提的次數(shù)太多了,那么再強的大學校長,總會有自己的,自己的辦公區(qū),因為學校其他人,還要有自己的分工啊,所以說,就算你是校長,你也得為自己劃分一塊范圍,告訴大家,這一塊是你來做的事,別人。那么程序也從生活中吸取了經(jīng)驗,那么,{}看到了吧,加了一對花括弧,告訴大家,我我括弧之內(nèi)的事情,之外的,屬于其他工作人員的,或者是屬于學校共有的int{return}intwindowsunix序,這些程序中main函數(shù)就是程序的總,那么最終要向匯報一個整型數(shù)據(jù)。如果返回是0表示程序正常退出,如果是其他值呢?那就是不正常嘛!更詳細不再多說,免得影響理解。我們目前一般只用到return0,0void{}int{return0;} int{return}本條件,那就是有了總,但是這個總,占著茅坑不拉屎,總歸不是好事情,于是他得有自己的事情做,那么接下來,#include<stdio.h>intmain(){printf("oC!");return0;}別誤會,這可不是給人家做,這C不是維生素C,而是C語言。這段代碼的意思呢,就是在控制臺輸出一行內(nèi)容,輸出什么內(nèi)容呢,不告訴你,自己敲代碼試試看。為什么我說是控制臺呢?這里要關(guān)注一下操作系統(tǒng)了。DOS是英文DiskOperatingSystem的縮寫,意思是“磁盤操作系統(tǒng)”。DOS是個人計算機上的一類操作系統(tǒng)。從1981年直到1995年的15,DOS在IBMPC就是那么黑黑的界面,一行行令,和IBM一起賣,竟然也賣得不亦樂乎,沒辦法,那個時候似乎也沒什么更好的操作系統(tǒng),作系統(tǒng),據(jù)說當時IBM管事的大哥聽了差點噴飯,哥是不是這兩天腦袋被驢踢了?當然這只是我的認為,因為我還真不知道究竟有沒有驢,如果那位同學知道沒有驢的,別來找我茬,我不想和你論證。后來哥像模像樣的,竟然弄出了個windows3.0,看起來還真像那么回事,不過似乎也沒啥市場,于是后來又到windows95、windows98,一步步弄得像模像樣了,開始有市場了,當然,這些操作系統(tǒng),都是在dos系統(tǒng)的基礎(chǔ)上開發(fā)的,IBM的哥們一看,了不得啦,這哥一旦有市場了,咱們再用這系統(tǒng),價格可就不是咱說了算了,于是乎,開發(fā)想辦法,但是下手晚了,哥的基于NT內(nèi)核的windows2000出來了,哥終于體會到了的,那個爽啊。之后的操作系統(tǒng),都不再基于DOS了,但是為了保留這個一個功能,方便一些老用戶使用方便的使用一些命令,于是哥在新的操作系統(tǒng),都加入了一個程序,就是我上面說的:命令提示符,操作起來和老的DOS#include<stdio.h>intmain(){printf("oprintf("oC!");return0;}#include<stdio.h>intmain(){printf("o printf("oC!");return0;}看見沒,多打點空格啦。真笨。有同學說了,是不是啊,這也太搞笑了吧,OK,是不是,你先這么寫著,學我的程序,當然得按我的規(guī)矩來了。多年的媳婦熬成婆,沒辦法,總得有一個過程。雖然現(xiàn)在的媳婦不愿意熬成婆婆。#include<stdio.h>是什么東西呢?是這樣的,C語言里面,有很多函數(shù),需要我們?nèi)フ{(diào)用,這里的printf就是一個函數(shù),負責做輸出的,那么這個函數(shù),就在stdio.h這個文件,所以通過這句話,包含這個文件。這個也是必須寫的,一定寫上哦。下面的例子我會省略這行,但是不能省略了。這一節(jié)呢,同樣不說太多內(nèi)容,但依然很有用。希望看完之后,改變一下自己學程序的思想,程序這門課,說難也不C3、5000其中一個。學校就好比我們的程序,校長就好比我們的main函數(shù)。那么國家(操作系統(tǒng))下達任務讓學校正常運行(程序運行),不是告訴學校的,學校本身不會做任何事,,國家是告訴校長(main所以國家只負責對校長傳達命名,比如學校要擴建,給你200200(main)報告材料格式校長(200{}intmain(int{return}int{return}int{return}void{}第三章內(nèi)存和超市那么我們玩過電腦,電腦上有很多內(nèi)容,每一個內(nèi)容都需要有個的地方吧,那么究竟該怎么呢?這個時候我們回頭看看我們前邊提到的2進制,這個時候不得不再次提起。程序運行的時候,需要一定的內(nèi)存空間,這也就是為什么有的機器內(nèi)存大小也會影響速度。計算機的原理,最基本的單位,就是bit,我們叫位,這個位有兩種狀態(tài),要么是0要么是1,不會表示更復雜的情況,那么問題就出來了,一個位,表示的最小值是0,最大值是1,更大的值,表示不了了,這下還玩?zhèn)€什么勁兒。于是人 、、、,注意這都是二進制,也就是十進制的0、1、2、3,哈哈,范圍是不是擴大了?于是人們就8個bit,也就是8個位連在一起,這樣的話,從0到 是不是0——255?這就叫一個字節(jié)。怎么算出來的?大哥,自己慢慢找規(guī)律吧?,F(xiàn)在,你明白為什么計算機要用到二進制了吧?電腦最基本的單元只有兩種狀態(tài)。基本單元bit,那么一個字節(jié)(byte)有8個位,為什么是8個?為什么叫一個字節(jié)?有的同學查一查ASCII碼表,西方人發(fā)明的電腦,他們的字母撐死了也就26個,再加上特殊符號什么的,這255個值也足夠用了。好了,這里留一個作業(yè),查ASCII碼表。那么我們繼續(xù)看,255如果做數(shù)學計算還是不夠啊,怎么辦?再擴大,兩個字節(jié),16位夠不夠?16位表示多少?0——65535,哇,不少了,那我要做財務,還是不夠,沒關(guān)系,4個字節(jié)夠不?已經(jīng)多少個億了!不對呀,我還需不過有人有辦法,就拿2字節(jié)來說,能表示0——65535,那么,長度是16個bit,能不能讓15位表示數(shù)值?讓最前面的一你問我為什么?你太過分了,你不能算算啊,學我的程序,很多很多東西,是必須你自己動手弄明白的。說了這么多,那么究竟用多大來表達一個數(shù)呢?究竟是幾個字節(jié)?于是問題出來了,如果是人的,怎么算255都夠了,個時代嗎?連windows操作系統(tǒng)這么大的軟件,也不過幾年就換了,難道您兄弟寫的軟件前無古人后無來者不成?不要緊,那么人的,用一個字節(jié)夠了,但是如果做其他數(shù)算,怎么也得上千上萬吧,恩,看來是挺頭痛的,怎么辦?還是分類吧。于是計算機里面,出現(xiàn)了一些新概念,數(shù)據(jù)類型。(注意:以下類型所說以TurboC2.0每個類型的環(huán)境在變化,比些環(huán)境int是節(jié),那么值的范圍也隨之擴大,不再細說。)29大哥,拜托,說個30歲怎么啦?沒辦法,實際需求,要有小數(shù)。下面我列出一些數(shù)據(jù)類型,希望大家認真看short

18signedshortint18 2unsigned 2signed 2long 4 —unsignedlongint4signedlong 4 — 4double 8好啦,這些內(nèi)容看一遍大概了解一下,那么在shortint類型可以簡寫short,unsignedshortunsignedintunsignedlong那么了解了這么多數(shù)據(jù)類型,究竟該如何使用呢?面還說了,現(xiàn)在只說不用,這不是嗎?OK節(jié)來講應用。說到這里,我讓去查ASCII碼表的,不道去查了沒有,如果沒有查的,趕緊去查,查了之后回來繼續(xù)看,那位同學說了,老師啊,你為啥不能把這東西寫在這書里呢?怎么說呢,我覺得我這本書,實在不能作為使用,的資料,還得靠大家去自己動手吧,而且這個表,也許不要我們把他背下來,只是需要了解一下,所以這里沒有列出,希望大家能原上面說到字節(jié),說到數(shù)據(jù)類型的時候,都是數(shù)值,但是還有一個類型,那就是字符類型(cha),這個類型,占幾個字節(jié)?自己動腦想,如果你能想到了,恭喜你,有潛力,沒想到?唉,真該面壁啊,char就是charcter,字符嘛,前面我都了,英文也就26個字母,255足以。什么叫字節(jié)啊?那不就是一個字符的長度嗎?看書不動腦,你讓我怎么說你呢?你這么看2intmain(){輸出a;return0;}這是第一點,那么第二點,是一個同學,打。這個時候你打的是這個名字,還是擁有名字的這個人?OK,aaaint{chara='a';return0;}int{chara='b';return0;}int{chara='c';return0;}a,acharc‘f’;這個表達式,意思就是一個變量c,值為f。就好比,有個爺家里添了孫子,爺給孫子取個名字,叫“為民”。你說這孫子是否為民,誰知那么,printf("%c",a);這個又是什么意思呢?printfstdio.h,這個函數(shù)就在這個文件中,你用就是了,只要想輸出結(jié)果看,就用它,"%c"表示輸出一個字符類型的值,后面逗號隔開,再后面一個a,表示輸出的值是a的值,那么這句話的意思就是,把a的值按字符格式輸出。int{charc='k';printf("characteris%c",c);return0;}輸出的內(nèi)容,要看字符串后面的參數(shù),這里就是c變量的值。鍵,也int{chara='a';",return}int{chara='a';return0;}關(guān)系,C'\t'表示tab'\n'表示換行,'\b'表示退格,就是你經(jīng)常刪除文字時按的那個鍵,那么int{chara='\';return0;}int{chara='\\';return0;}int{chara='c';printf("%c\n",printf("%c\n",return}intmain(){chara= ",return0;}int{inta=10;printf("%d\n",a);return0;}int{inta=10;intb=7;intc=a+b;printf("%d\n",c);return0;}要么繼續(xù)從頭看本節(jié),如果一直到這里看不懂,唉,放棄本書吧,我你看不懂我的書就讓你放棄程序人生,但求你放過我int{inta=10;intb=7;intc=a+b;printf("a+b=%d\n",c);return0;}a+b=很奇怪了a和b出沒有變成107呢?有些同學會疑惑,也許有些同學早就理解了,我說一下,printf里面雙引號變量c的值輸出。int{inta=10;intb=7;intc=a+b;printf("a+%d=%d\n",b,printf("a+%d=%d\n",b,a+printf("%d+b=%d\n",a,c);printf("%d+b=%d\n",a,a+printf("%d+%d=%d\n",a,b,c);printf("%d+%d=%d\n",a,b,a+b);printf("%d+%d=%d\n",b,a,c);printf("%d+%d=%d\n",b,a,a+b);return}intlength20;而盡量減少這種情況:int=組合單詞命名,比如想表示的和的:intliAge=10;intzhangAge=18;每個獨立的單詞首字母大寫,但是第一個字母小寫,這樣寫只是為了閱讀方便,看起來是不是舒服一些呢?intmikeAge23;但是,如果表示第二名手的成績,怎么辦?intsecondRacerScore=88;好長啊,可以不?可以,但是長了感覺也不爽,那么改一下,intsecRacerScore88;還是有點長,intsecRcScore88;還長?憑自己的感覺吧,如果還覺得長,自己憑是我備過于強調(diào),我覺得變量名最重要在于易懂。有時候每個項目還會有不同名要求,但一般都基本上和上面int{intfirst=10;intsecond=intresult=first+printf("%d+%d=%d\n",first,second,result);return0;}注意:定義變量一定要放面,并且應用過程中一定要注意每一個字母的大小寫,大寫的和小寫的是不一樣的。比如intA=20;inta=17;這是兩個變量,互相沒啥關(guān)系!就好比大當家的二當家的,這是兩個人。int{intfirst,result;intsecond=16;first=18;result=first+printf("%d+%d=%d\n",first,second,result);return0;}int{intintsecond=printf("%d+%d=%d\n",first,second,result);return0;}int{inta;printf("%d\n",a);return0;}int{inta,b;printf("%d\n",printf("%d\n",b);return0;}如果說你用的是TurboC2的話,恭喜你,結(jié)果是不是很奇怪了(還有一些環(huán)境,會導致程序)?是啊,看來不給初始值,多人都要去打醬油了。什么?沒見過inta,b;?沒關(guān)系,一定定義多個變量嘛,用逗號隔開,還可以inta=15,b;怎么樣?明白不?別說兩個變量,20int{intscanf("%d",&input);/*d,沒有\(zhòng)n*/printf("%d\n",input);return}的,那就是說,這個&表示這個變量input在內(nèi)存中的位置,你就這么理解著,那么scanf會輸入的內(nèi)容,根據(jù)這個位置存放,然后你輸出這個變量inputinputint{inta;intscanf("%d",scanf("%d",printf("%d+%d=%d\n",a,b,a+b);return0;}兄弟,運行的時候,給哥輸入兩個數(shù)試試看?看看是否真的能加?什么?你問我為啥不弄個intc=a+b?恩,是個問題, 第四章談情說愛 :“你到底說不說”反倒了,天地良心啊,這究竟是誰在忍耐??!那么怎么辦呢?很簡單,繼續(xù)學習!順便說一句,們注意了啊,計算機專業(yè)的男生可能會因程序的影響,更容易接受命令一int{inta; intb;scanf("%d", printf("%d+%d=%d\n",a,b,a+b);return0;}好了,還是上節(jié)最后的代碼,輸出結(jié)果還是一樣,那么中間多了幾行注釋,這些注釋,是給我們這些寫代碼的看的,程序執(zhí)行的時候,是不管這些東西的,明白否?那么C語言里面的注釋,往往都是這么一個格式:/*注釋內(nèi)容*/。寫在一對int{scanf("%d",&a);printf("%d+%d=%d\n",a,b,a+b);return0;}int{inta;intscanf("%d",scanf("%d",&b);printf("%d+%d=%d\n",a,b,a+b);return0;}int{inta;intscanf("%d",&a);scanf("%d",&b);+=a+-=a-*=a*return0;/=a/} int{inta=17;a=a+3;return0;}什么?你又看不懂了?那么現(xiàn)在告訴你,這個也是可以的,什么意思呢?aa3a3給a。等號(=)表示賦值,這句話就是將a3a。如果不明白的話,多讀一下前面這句話。a320,然后執(zhí)行那么這和暗戀啥關(guān)系?兄弟,不知道啥叫暗戀嗎?喜歡,又不敢對人家說的感覺,那么自己承受了痛苦,這里面變量a暗戀b,baaint{inta=17;a+=3;return0;}兄弟,來一起學下+=這個符號,這也就相當于a=a+3;不過呢,這個效率呢,據(jù)說會比a=a+3快,應該是快吧,哥我沒有測試過,那么你就知道+=的速度快,如果你真有,以后自己學的熟練了,自己去測試看看。int{inta=17;a+=1;return0;}int{inta=17;a++;return0;}那么,有時間,自己可以研究一下a+=2;a-=2;a*=2;a/=2;a++,a--;a**?上帝啊,老天爺啊,如來佛祖,都來看看,這個同學要發(fā)瘋,a**aa*1a**?如果你再敢問a//,我……!那是注釋!int{131313return}int{charprintf("Pleaseinputacharactor");scanf("%c",&c);printf("Thecharactorwitchyouinputis%c\n",c);return0;}int{charprintf("Pleaseinputacharactor");scanf("%c",&c);printf("Thecharactorwitchyouinputis%d\n",c);return0;}int{charc='A';printf("%d\n",c);return0;}int{inti=65;printf("%c\n",i);return0;}int{inti65;/*設(shè)置i的初始值為printf("%c\n",i);/*輸出ASCII為的字符,或者理解為將按照字符格式輸出*/ printf("%c\n",i);/*再輸出*/ printf("%c\n",i);/*再輸出*/ printf("%c\n",i);/*再輸出*/return0;}int{inti=65;printf("%c\n",printf("%c\n",printf("%c\n",printf("%c\n",i++);return0;}int{inti65;/*設(shè)置i的初始值為printf("%c\n",i);printf("%c\n",i++);return0;}int{inti=printf("%c\n",printf("%c\n",++i);return0;}怎么了?無語了?是不是想到《點秋香》里面他爸說:“,你想玩死我你才甘心?”我也借用的一句話:“不是啊,我是想幫你!”“想幫我你撒這些沒用的干什么?”我再告訴你,這是霹靂,會爆!經(jīng)常有同學這里犯迷糊。i++和++ii1,下面兩段代碼輸出結(jié)果將不會有任何區(qū)別:int{inti=65;printf("%c\n",i);return0;}int{inti=printf("%c\n",i);return0;}在這句話結(jié)束,都是增1,所以效果一樣。但是下面這兩段,他就有區(qū)別了:int{inti=printf("%c\n",i/*先運行i1*/return0;}int{inti=printf("%c\n",i+/*1*/return0;}4.也要愛整喜歡粗糙的男生不知道是不是現(xiàn)在還如此,但是根據(jù)歷史,喜歡細致的,早遠古時代,估計都絕跡了,為啥?因為生存要求必須勇猛,必須每天能保障吃的。那個時代,奶油小生估計已經(jīng)絕跡了,就算有,也是稍微帶那么一點奶油的intmain(){inti=13;i++;printf("%d\n", return}main(){inti=13;i++;printf("%d\n",i);return0;}int{inti=i++;printf("%d\n",i);return0;}int{inti=i++;printf("%d\n",i);return0;}int{inti=i++;printf(“%d”, return}int{inti=i++;printf("%d\n",i);return0;}int{inti=13;printf("%d\n",i);return0;}最后,我再說一句話,如果你的代碼格式不標準,那么請不要問我問題,謝謝合作。還有,找工作面試,筆試過后,往往代式,說不定會出什么問題,你將很可能與好公司無緣,因為好公司畢竟還是注重代碼的格式問題的,大公司需要互相交流,5.int{intscanf("%d",&r);printf("圓的面積是:%f\n",r*r*3. return0;}這么精確了,要改動,改為3.142,那么你可能去改代碼了。恩,看起來很容易解決。那么如果代碼如下呢?int{intintavg0;scanf("%d",&r);avg+=r*r*3. scanf("%d",&r);avg+=r*r*3. scanf("%d",&r);avg+=r*r*3. scanf("%d",&r);avg+=r*r*3. scanf("%d",&r);avg+=r*r*3. avg/=5;return0;}這也沒問題,如果你需要修改,我把五個地方都給你該為3.142#definePI int{intintavg0;scanf("%d",&r);avg+=r*r*PI;scanf("%d",&r);avg+=r*r*PI;scanf("%d",&r);avg+=r*r*PI;scanf("%d",&r);avg+=r*r*PI;scanf("%d",&r);avg+=r*r*PI;avg/=5;return0;}defineNAMEvaue,注意,此處沒有等號,都是空格。那么,在實際執(zhí)行的過程中,此種定義僅僅是做了基本的替換,就是將代碼中的NAME替換為value。還有一點要注意,根據(jù)習慣,常量名一般采用大寫。小寫可第五章哥還是很優(yōu)秀的上面我們畢竟學會了一點三腳貓的功夫,那么要想成為御貓,那可是還有很大差距的,那么要想成為優(yōu)秀的人才,首先就要13.1415int{intscanf("%d",&r/*如果r>0printf("%d\n",r);return0;}程序應該不對吧。恩,不錯,同學,你終于變得了,但是只要你能看明白我寫的這個意思,我們只要稍微做一點修改即可。#definePI3.intmain(){intscanf("%d",&r/**/if(r>0)printf("%d\n",r*r*PI);return0;}#definePI3.intmain(){intscanf("%d",&r/**/if(r>0)printf("%d\n",2*r*PI);printf("%d\n",r*r*return}有個如果。雖然前面有一個假設(shè)if,但是這個if后只能有一句話,也就是對一句話有效,如果下面還有,看這個代碼#definePI3.intmain(){intscanf("%d",&r/**/if(r>0)printf("%d\n",r*r*printf("%d\n",2*r*PI);return0;}你會發(fā)現(xiàn)不管是輸入是否負數(shù),周長總是會輸出?,F(xiàn)在再看出錯的那段程序,elseififelse,中間只允許有一句話,elseifelse有辦法,這個時候就需要劃定范圍了??催^動物類吧,最初叫動物世界,現(xiàn)在不知道叫啥了,看看那里面的,身邊站一個母,別的就知道,這是那只的,但是還有很大的地盤呢?怎么表示自己的實力范圍呢?不管放#definePI3.intmain(){intscanf("%d",&r/**/if(r>0){}

printf("%d\n",2*r*PI);/*注意格式,我在這里以花括弧為標準,再次進行了縮進*/printf("%d\n",r*r*PI)return}#definePI3.intmain(){intscanf("%d",&r/**/if(r>0){}{}

printf("%d\n",r*r*PI);/*注意格式,我在這里以花括弧為標準,再次進行了縮進*/printf("%d\n",2*r*PI);printf("Inputreturn},稿費可是按行的,別這么可以不。不過同學,代碼不按行,別開心,起碼國內(nèi)是這行情,我們繼續(xù)我們?yōu)槭裁??你問我嗎?你自己沒想想,如果單位是厘米的話,輸入50,可能。輸入1,可能嗎?你這輪胎能用嗎?輸入10000,可能嗎?100米的半徑啊哥,這種輪胎造出來的車,人估計搬個梯子上去,那也得爬半天,這種車誰敢開啊,車前3米有20個人你都int{intscanf("%d",&r/**/if(r>=10并且r<=200){}{}

printf("%d\n",2*r*printf("Inputreturn}什么?>=和<=是什么?這是大于等于、小于等于,因為我們那個大于等于的符號(≥),不能通過鍵盤直接打出來。所以就這么表示,大于:>,小于:<,大于等于:>=,小于等于<=,不等于:!=,相等似乎不用說了,等等,必須要說!比較兩個值是否ifr1)判斷r0,而不能寫為if(r=10),如果這樣寫了之后,那么r0,因為你對rifint{intscanf("%d",&r/**/if(r=10){}{}

printf("%d\n",2*r*printf("Inputreturn}if(r10r200),老規(guī)矩,改成英文總可以了吧。if(r10andr200),這int{intscanf("%d",&r);/*if(r>=10&&r<=200){}{}

printf("%d\n",2*r*printf("Inputreturn}int{int/*10或者大于200if(r10||r200)/*||{}{}

printf("Inputprintf("%d\n",2*r*return}現(xiàn)在我們道了,于零的必就是胎的半,像《天下賊》里說:“好車你,開好就可便進入,開好車就一定是好人嗎?你還笑”。我們看到之后,可能一笑就過了,其實想想,就是呀,開好車的情況也有很多中。學生三教九流之分數(shù)問題:10085706060當然,現(xiàn)在天天喊減負,除了減,教育模式不作任何更改,當然這個不屬于我們討論范圍,不多說。那么,當輸入一個分數(shù),int{intscore;scanf("%d",&score);if(score==100){}if(score>={}if(score>={}if(score>={}{}

printf("I’msosososorry!return}65 、、、 int{intscanf("%d", if(score {}if(score {}if(score {}if(score {}{}

printf("I’msosososorry!return}int{intscanf("%d", if(score {}{}

return}int{intscanf("%d", if(score {}{

if(score>=85){}{}}

return}int{intscore;scanf("%d",&score);if(score==100){}{

if(score>={}{

if(score>={}{

if(score>={}{}}}}

return}int{intscore;scanf("%d",&score);if(score>={if(score>={if(score>={if(score=={}{

}{}

}}{

}}{

}return}int{intscore;scanf("%d",&score);如果等于100return}int{intscore;scanf("%d",&score);if(score==100){}elseif(score>={}elseif(score>={}elseif(score>={}{}

printf("I’msososoreturn}{}{}{}多條件的情況,一個ifelseifelse,如果不需要也可以沒有else{}{}{}{}{}{

{}{}{}{}}都是一個幻想家,總希望有一天,自己身邊能MM成群,天天跟著自己。夢畢竟只是夢,不是美好的現(xiàn)實,之可是一旦兩個人確立了關(guān)系,們忽然對你有了許多要求:你聽,你受不了,因為你做的努力只是為了成功追到,并不曾想過真正改變,改變總是痛苦的。你不聽,受不了,總覺得,你應該為她可以做任何事,雖然這種想法是錯誤的,int{intprintf("Pleaseinputthegirl'sNO.youselect:");scanf("%d",&i);{casecasecase}return}什么意思呢?首先是提示,說吧,你選擇誰,然后讓你選。輸入吧,輸入完,看你選擇了幾,switch表示判斷(i)表示根據(jù)i來判斷,這是一個整體結(jié)構(gòu),里面分情況:case1:表示i為1的情況,也就是你輸入1的情況。注意case后面一定要有值,后面一定是冒號(:)結(jié)尾,注意,一個case就是表示一種情況,每種情況最后要寫一個break,break表示跳出塊,這里則是跳出switch1case1break,那么別沒提醒你,你把break1、2、3int{intyear,month;scanf("%d",{casecasecasecasecasecasecasecasecasecasecasecaseif(year%400==0||year%4==0&&year%100!={}{}

}return}這個問題,不用解釋了吧?、、、、、、、 閏年的方法是,年份能夠被4整除而不能夠被100整除的是閏年,或者被100整除的情況下同時也能夠被400整除也是閏年。(也就是說,1980年是閏年,1984年是閏年,公元100年不是閏年,公元400年是閏年,公元 元800年是閏年。)后面括弧的都是舉例,接下來你得寫程序了。地鐵站售票系統(tǒng),已知地鐵站的票價為2塊、3塊、4塊、5塊、6塊、7塊、8塊幾種,如果輸入小于2,輸出“哥們兒,你太摳門兒了”,如果輸入2,輸出“您了兩元票”,依次三元、四元、五元都是漢字。如果大于8,輸出“哥們第六章五百年的回眸想要得到自己想得到的東西,總是要付出代價的,但是總是會讓我們得到一些東西的時候,失去。盲目的追求學習當年出身將軍世家,從小生活相對優(yōu)越,老爸起碼也算個旅長以上的,但是有自己的追求,覺得當馳騁婚后還是一無所成,被一不就要被驃悍的妹子扔一個菜盆子,從小練就的本事終于派上用場,一閃就躲開了。但前途也未必就是光明的,竟然意外見到了父親的好朋友,可惜這朋友看的父親已經(jīng)走了下坡路,也懶得管他,給了幾貫人就是如此,人生的道路也經(jīng)常如此的彷徨。一看,沒辦法,走吧。走到一個小鎮(zhèn)上,看到人家的,就湊上去賭了幾把,結(jié)果運氣太好,擋都擋不住,發(fā)了一筆小財。但是哥,都別忘了,強龍不壓地頭蛇,你有幾個錢趕緊趕你的路吧,賭個什么勁兒啊?半人家跟上來,暴打一頓,錢搶光,這下好了,還不如不贏。這個道理,希望看書的同學都明白了,別貪小還不一樣要一邊偷人家田里的紅薯吃,一邊趕路?幸虧遇到了一個空空和尚,當然這是。其實關(guān)鍵是后來碰上了郭威將軍,開始給郭當跑腿的。后來郭一看,這小子有兩下子啊,于是才慢慢的開始重用。后來才有機會跟著的外守城的起碼也得2、3萬人吧,還就能攻下,你能嗎?不能,為啥?因為人從小學兵法讀書,練武騎馬,有根底。而你沒有,所以你現(xiàn)在,得老老實實地跟著學程序不是?那么學程序,就要老老實實地,把我所說的每一點,都要自己親手打代碼出來試試看,別偷懶,偷懶你就失去了成功的機會。上面羅嗦那么多,就是希望你知道一個道理,收獲是需要付我勸你,還是多寫寫,寫到一遍成功。那么再往后看也不遲。我不我的鍵盤打字,希望你也別你的鍵盤,畢竟我打鍵盤好了,恭喜你按照約定看到這里,如果你沒有按照要求,同學,學不好就不要了,當然也需你悟性好,希望如此。前面我們學到了一些內(nèi)容呢,基本上可以讓一些小功能,總算是有一點智能的感覺了,但總覺得還是少點什么?恩,確實,好像是有點遺憾。假我現(xiàn)在學要學習學的自然這一,我希望運一個程序讓看看0到00自,樣寫int{return0;}101寫吧,請把這段代碼寫好,再次強調(diào),非常重要,一定要寫到100。運行成功之后,繼續(xù)下文。int{intfor(i=0;i<10;{printf("%d\n",}return0;} 思。那么上面的for(i=0;i<10;i++),意思可以這么理解:在這種前提下多次執(zhí)行(剛開始i0;如果i10i1)。[1:]int[2:]for(i /*fori0,也就是為i0[3:]for(xx;i<10;xx) /*fori10,for那個printf*/[4:]printf("%d\n", [5:]for(xx;xxi++)/*i1。那么這個地方我們要注意了,我們會發(fā)現(xiàn)for括弧內(nèi),實際上是分號隔開了3部分,現(xiàn)在執(zhí)行的是第3部分,那么執(zhí)行完畢之后,會不會再執(zhí)行i=0,i0ii不需要再執(zhí)行了。那么執(zhí)行了這個i++之后,i的值變成了1,看下面分析。*/[6:]for(xx;i10;xx)/*執(zhí)行fori10,for那個printf,此時i值為1,當然滿足了。*/printf("%d\n",for(xx;xx;/*i12for(xx;i</*執(zhí)行foriprintf("%d\n",for(xx;xx;/*i13for(xx;i</*執(zhí)行foriprintf("%d\n",for(xx;xx;/*i14for(xx;i</*執(zhí)行foriprintf("%d\n",for(xx;xx;/*i15for(xx;i</*執(zhí)行foriprintf("%d\n",for(xx;xx;/*i16for(xx;i</*執(zhí)行foriprintf("%d\n",for(xx;xx;/*i17for(xx;i</*執(zhí)行foriprintf("%d\n",for(xx;xx;/*i18for(xx;i</*執(zhí)行foriprintf("%d\n",for(xx;xx;/*i19for(xx;i</*執(zhí)行foriprintf("%d\n",i);for(xx;xx;i++)/*i110[33:]for(xxi [34:]printf("輸出完畢\n");/*最后一句話*/int{intfor(i=0;i<100;{printf("%d\n",}return0;}int{intfor(i=0;i<=100;{printf("%d\n",}return0;}2int{intfor(i=0;i<=100;{if(i%2=={printf("%d\n",}}return0;}么i還是從0變到100,但是只i對2取余數(shù)和1相等的時候,才輸出,那么這么做,是否可行呢?好了,上面幾段代碼敲下接,真必么?忽覺被了哥,正象話吃長,你int{intfor(i=1;i<100;i+={printf("%d\n",}return0;}int{intfor(i=100;i>0;i-=2)printf("%d\n",i);return0;}啊!forfor能少!問為什么?這是企業(yè)開發(fā)規(guī)范的要求,按照我的要求寫,以后找工作你會更有希望一些,一定要3.學藝——七十二般變int{int sum=0;/*剛開始假設(shè)sum為0*/for(i=1;i<100;{sum+=}printf("sum=%d\n",sum);return0;}sum+=1;sum+=2;明白不?不明白?前面說了哦,那么sum=sum+2;明白不?這不是一個意思嗎?還是不明白?建議本書從頭再看到這里,謝謝。那么我們分析一下,for環(huán)之前,我們假設(shè)sum0,那么當i1候,進入循環(huán)執(zhí)行的是,sum+=1;也可sumsum1;那么此時因為sum0,進行完這一步,sum1sum1的基礎(chǔ)上又加上了2,那么再一次加上3,再一步加上四,是不是最終加到了99啊,然后執(zhí)行i++,可惜啊,i等于100的時候,進不來了,這下慘了,結(jié)果不對了,那么怎么辦呢?很明顯,把i<100改為i<=100,就可以了。那么自己改吧,還等什么呢。那么,如果結(jié)合前面所學的輸入,我們可以把程序做的更靈活一點,怎么做呀?好啦,現(xiàn)在我們不計算1100int{intintsum=0;intnumber;scanf("%d",&number);for(i=0;i<=number;{sum+=}printf("Resultis%d\n",sum);return0;}intmain(){intintsum=intnumFrom,scanf("%d",&numFrom);scanf("%d",&numTo);for(i=numFrom;i<=numTo;{sum+=}printf("Resultis%d\n",sum);return0;}3,8,一看結(jié)果,沒問題,沒錯,老師的代碼總是沒問題,但是你能不看書上的代碼自己打嗎?不能的話,8,3試試看?什么?不合法?怎么就不合法了?從8計算到3可以不?你既然是程序,你得想辦法幫我呀,于是,修改吧:int{intintsum=intnumFrom,scanf("%d",&numFrom);scanf("%d",&numTo);if(numFrom>numTo){for(i=numTo;i<=numFrom;{sum+=}}{for(i=numFrom;i<=numTo;{sum+=}}printf("Resultis%d\n",sum);return0;}int{intintsum=intnumFrom,scanf("%d",&numFrom);scanf("%d",&numTo);if(numFrom>numTo){for(i=numFrom;i>=numTo;i--{sum+=}}{for(i=numFrom;i<=numTo;{sum+=}}printf("Resultis%d\n",sum);return0;}int{intintsum=intnumFrom,scanf("%d",&numFrom);scanf("%d",&numTo);if(numFrom>{(}for(i=numFrom;i<=numTo;{sum+=}printf("Resultis%d\n",sum);return0;}numFrom=numTo;numTo=一個8一個3測試一下。假設(shè)83,numFrom8,numTo3,等到執(zhí)行numFrom=numTo;好了,numTo的值3,那numFrom新賦值之后,numFrom3;注意,此時numTo3,等到你執(zhí)行第二句numTonumFrom;的時候,實際上這兩個3forfor(i3;i3;i++)那么只有i3inttemp;tempnumFrom;/*temp8,numFrom8numTo3*/numFromnumTo;/*temp8,numFrom3numTo3numTo /*temp8,numFrom3numTo8int{intintsum=intnumFrom,numTo,scanf("%d",&numFrom);scanf("%d",&numTo);if(numFrom>{temp=numFrom;numFrom=numTo;numTo=temp;}for(i=numFrom;i<=numTo;{sum+=}printf("Resultis%d\n",sum);return0;}輕的學習壓力的,賺錢不賺錢能不能弄到稿費,根本不知道,這些代碼我都打了,你比我還痛苦嗎?打吧,看哥的書,int{intsum,numFrom,scanf("%d",&numFrom);scanf("%d",&numTo);if(numFrom>{}{}

printf("Resultis%d\n",(numFrom+numTo)*(numFrom–numTo+1)/printf("Resultis%d\n",(numFrom+numTo)*(numTo–numFrom+1)/return}貓吃老鼠問題:一只貓每天要抓很多老鼠,但這只貓自從參與貓游戲之后,喜歡上了貓游戲,每天讓抓到的1、3、5、7……求)第七章的迷好啦!沒寫完的回上面繼續(xù)寫,寫完的開始新歷程,說說我們作業(yè)遇到的問題,也許有些同學沖動已經(jīng)去查資料了,那更好,012345678101112131415161718012345678101112131415161718{if(i10)/*如果i<10,{}{}

printf("%d",printf("%d",{}{}

printf("return}不?不能,做程序嘛,就是如此,情況很多,要不斷地發(fā)現(xiàn)不斷的考慮,否則我題目怎么會叫“輸出也瘋狂”,感inti=20;printf("%d\n",i);printf("%d\n",printf("a%db\n",printf("a%5db\n",printf("a%-5db\n",printf("a%2db\n",printf("a%3db\n",printf("a%4db\n",對齊,數(shù)字表示寬度,如果小于實際寬度按照實際寬度,否則按照設(shè)定寬度輸出,如果寬度不足補空格。哦,原來說的輸出%llongprintf("|%-8.3f|\n",好啦,說得很簡單,還有很復雜的一套輸出,這里就暫且不提了,也許再下一版本的本書中會補充吧。但是作為本書的本意,是為了學習C#而寫的前期基礎(chǔ)或者為學習C語言的降低難度,所以一些可學可不學的僅僅為了考試的內(nèi)容或者一些基本上一輩子用不上的東西,我就不說了,基本沒用,什么?你準備專門做C語言?以后做C語言開發(fā)?有志向,那么先麻煩你關(guān)于這個問順利地登上王位,王后帕西帕艾卻生下了個怪物米諾,于是國王不得不將這個怪物關(guān)在一個迷宮里,而他下的雅典,卻不得不每年進貢少男少女給米諾吃。于是雅典王子泰修斯為了拯民,終于自薦作為供品被送給米諾。然而當國王驗收這些少男少女的時候,公主卻喜歡上了泰修斯。于是公主給王子一把寶劍,還給他一個線團,讓他進去之后可以按照線路返回。經(jīng)過殊死搏斗,殺死了米諾,但是神卻指示王子必須放棄愛情。于是有了下面一int{}同學說,簡單,不就是做個forintmain(){intprintf("Pleaseinputthecountofoutputlines:");scanf("%d",&lineCount);for(i=0;i<lineCount;{}return}int{intprintf("Pleaseinputthecountofoutputlines:");scanf("%d",&lineCount);for(i=0;i<lineCount;{}return}int{inti,j,printf("Pleaseinputthecountofoutputlines:");scanf("%d",&lineCount);for(i=0;i<lineCount;{for(j=0;j<8;{}}return}單嘛!8改成10,那么能否每行輸入幾就輸出幾個呢?簡單,弄個變量嘛!好,那么改一下看看:int{inti,j,lineCount,width;scanf("%d",&lineCount);scanf("%d",&width);for(i=0;i<lineCount;{for(j=0;j<width;{}}return}恩,太簡單了。同學說了,我其實想的也是這樣,只是不知道該如何寫。同學,咱能不能謙虛點?不會就是不會嘛,有思想int{inti,j,lineCount,width;scanf("%d",&lineCount);scanf("%d",&width);for(i=0;i<lineCount;{for(j=0;j<width;{if(i=={}{}}

printf("}return}**************************************************************************************************************************************************************************貓吃老鼠問題:一只貓每天要抓很多老鼠,但這只貓自從參與貓游戲之后,喜歡上了貓游戲,每天讓抓到的老1、3、5、7……等奇數(shù)第八章愛是含蓄的int{for(i0i{}return}int{{}return}恩,這樣看起來似乎比較合適,不會存在過度或者不足的情況了,那么如果姑娘一直不給反應怎么辦?那哥也沒辦法!嘿嘿,int{inti=intaccept=10;while(accept==0){printf("%d\n",if(i%10==0){accept--}}return0;}那么這個例子呢?只是說明了一下whileforforint{charscanf("%c",while(c>='a'&&c<='z'||c>='A'&&c<={printf("%cc);/**/scanf("%c",&c);/*輸入的c值因為已經(jīng)用過了,所以需要再輸入一個。重新再來。*/}return}ca'&&c'z'||c>='A'&&c<='Z'這個表達式因為&&優(yōu)先||,所以這句話相當于(c>='a'&&c<='z')||(c>='A'&&c<=int{charc;printf("%d\n",scanf("%c",printf("%d\n",c);return0;}碼值,發(fā)現(xiàn)輸出了兩個,每次運行不管輸入什么字母,第二個總是顯示10,那么這個是究竟是什么呢?自己去查一下ASCII表,看看是不是換行符,也就是我們常用的'\n'。此處需要特別注意,很多同學在此處出問題找不到原因。同學奇怪了,奇怪啊我明明沒有輸入這個換行符,哪來的換行符??!別別別,別說的那么早,同學,你不敲回車,程序怎么知道你輸入過了?恍然大悟,噢!原來是輸入了一個字母,然后又敲了一個回車,然后程序知道你輸入完畢了,然后輸入的字母ab回車,會發(fā)現(xiàn)第二個scanf97和98scanfint{charc;printf("%d\n",scanf("%c",printf("%d\n",scanf("%c",printf("%d\n",c);return0;}int{charc;while(c>='a'&&c<='z'||c>='A'&&c<={scanf("%c",&c);if(c=={scanf("%c",}}return}int{{if(c=='\n'){scanf("%c",}}while(c>='a'&&c<='z'||c>='A'&&c<='Z');return0;}這個和上面的寫法基本上意思一樣,區(qū)別在于,這個代碼執(zhí)行到do的時候呢,至少能進入循環(huán)體一次,所以如果是第一種代dowhilewhile學會了告白,是不是覺得,從此公主和王子過上了的生活?那是童話,實際上王子和公主,每天都要見面,日常的生活5個人圍成一圈玩數(shù)字游戲,1號喊1,2號喊2,依次喊下去,如果該喊7的倍數(shù)的話,不能喊7,要喊“過”,如果喊的數(shù)字含有7但不是7的倍數(shù)的話,要拍手。好了,輸出這幾個玩游戲的人如果從1喊到100的話,每個人應該喊什么?好了自己寫寫吧!int{inti=for(i=1;i<=100;{if(i%7=={printf("%dSay:Pass\n",(i–1)%5+}elseif(i%10=={}{}}

:Clap\n",(i–1)%5+printf("%dSay:%d\n",(i–1)%5+1,return}好了,自己看看你的和我的輸出結(jié)果一樣嗎?你想的和的一樣嗎,不一樣沒關(guān)系,有自己的思路也很好。(i–1)%5+1是什么?這表示第幾個人?。坷胕的循環(huán)求出第幾個人該喊這個游戲了。int{inti0;*intpos0;/*注意下面寫法,逗號隔開的起始算做一句話,但每個部分都能執(zhí)行就好比我們變量的時候inti=30,j,k所以i1;pos1作為第一部分執(zhí)行一次,后面的i++,pos++在每次forfor(i=1,pos=1;i<=100;i++,{if(pos==6){pos=}if(i%7==0){printf("%dSay:Pass\n",}elseif(i%10=={}{}}

printf("%dClap:\n",printf("%dSay:%d\n",pos,return}簡單嗎?簡單?注意:71、72、737,看你如何解決呢?我沒有解決,留給你解決!還有,再變一下咯,每當喊1、2、3、4、578,但是這個時候第三個人不喊,方向倒過去第一個人喊8,第五個人喊910。每次喊“過”或者拍手都要重新調(diào)換方向。好啦,好好的考慮考慮吧!此如果特想知道答案的,那么將在下一節(jié)——返璞歸真的最后,我再談這個答案,希望大家盡量爭氣,自己做出來。如果做不出來,那么我們來討論一個C60int{intcount=0;intsum=0;intscore;while(count<60){

scanf("%d",&score);if(score>=0&&score<=100){}{}}

sum+=score;countprintf("已輸入%2d個同學,總分為:%4d\n",countsum);

printf("同學總數(shù)%4d\n:總成績?yōu)椋?4d\n平均分為:%4d\n",count,sum,sum/count);return0;}下面我們再看看一些需要注意的問題,數(shù)學做題游戲(隨意生成一個表達式,然后要求輸入答案,并判斷答案是否正確)。那么要只做加法,那還好說,可是這太單調(diào)了,那么,如果想有時候加有時候減,這就有了隨機性。我們就不得不談談隨機數(shù)。那么Cint{return0;}int{printf("%d\n",printf("%d\n",printf("%d\n",return0;}也許你的機器不一樣呢?或者說,我這都是在騙你呢?哥又不是沒騙過你,盡信哥不如,哥不是,哥只是曾經(jīng)的一int{srand(1);printf("%d\n",printf("%d\n",printf("%d\n",return0;}intmain(){printf("%d\n",return}注意這里又多了一個頭文件,此頭文件如果再次用到,在后面的代碼中也將不再提醒。我們可以通過time函數(shù)得到時間,當然這個時間,只是一個很大的整數(shù)(long類型),這個值是返回的距離1970年1月1日0點到現(xiàn)在的時間的總的秒數(shù)。那么有了這int{printf("%d\n",printf("%d\n",printf("%d\n",return0;}int{intfor(i=0;i<100;{}return}int{inti;return0;}srand(time(NULL));使用了多次。而程序的執(zhí)行速度是非??斓?,那么就會有很多次取得的時間是一樣的,因為在一秒鐘之內(nèi)啊。所以每次產(chǎn)生隨機之后,使用的第一個隨機數(shù),和我們srand(1);多運行兩次有何區(qū)別?能想通int{inti;srand(time(NULL));for(i=0;i<100;i++){printf("%d\n",}return}int{inti;srand(time(NULL));for(i=0;i<100;i++){printf("%d\n",rand()%}return}1010,09。哎,經(jīng)歷如此多的周折,才知道如何得到算,那么我們需要兩種運算符(+)和(-),那么我們?yōu)榱穗S機產(chǎn)生,我們采用隨機數(shù),如果為1,我們做加法,0則做減法。那么,int{intcount=0;/*正確次數(shù)*/intright/*錯誤次數(shù)*/interror/*運算符*/charc_operator;intnumber1=0;intnumber2=0;/*計算結(jié)果*/intresultintinput_result=/*隨機*/while(count<100){

/**/number1rand()100;number2rand()100;if(rand()%2==1){}{}

c_operator=result=number1+c_operator='-result=number1- ",number1,c_operator,number2);scanf("%d",&input_result);if(input_result==result){}{}

righterrorprintf("共做%3d題,正確%3d題,準確率%3d%%\n",righterror,rightright*100(right}

}

printf("考試結(jié)束:共%3d題,正確%3d題,準確率%3d%%\n",righterror,right,right*100(rightreturn0;100intmain(){longinti,x,y,for(i=1;i<100000;{比如開方等于然后*39而開方取整數(shù)也是而*310就不成立x=sqrt(i+100); /*x為加后開方的結(jié)果*/y=sqrt(i+ /*y為加后開方的結(jié)果if(x*x==i+100&&y*y==i+268){printf("%ld\n",}}return}OK,運行一下看看。答案: 同學說,不是吧,,這代碼你不是抄的吧。是的-_-!,被你發(fā)現(xiàn)了,不過沒關(guān)系,我又沒說這種寫法好。這是我在一個叫做《C語言經(jīng)典誤人算法100例》中看到的,看完之后,感慨萬千,真的是經(jīng)典。a+268==b*b+168==c*看似沒什么問題之后,我們再來分析:拋開a不考慮看后面等式:c*c–b*b==168;這個等式應該沒有錯。按照數(shù)學分解的方法,可以轉(zhuǎn)換成:(cb)(cb)168;所以我們通過簡單的考慮,c–b01,那么cb168。如果c–b2,cb1682;,c–b168仔細分析的話,c–b13c–b13cb1681212c–b1310cbx,c–by;c(xy)2;b(xy2;計算c和b,都是需要xy2,這就對xyy113,而且xyint{int/*x表示兩個數(shù)a和b相加的和,y表示相減的差*/intx,y;for(y=1;y<13;{if(168%y==0){x=168/if(x%2==y%{b=(x-y)/2;printf("%d\n",b*b-}}}return}運行試試看?算到這里,你還需要說什么呢?希望通過這個問題,大家能養(yǎng)成好習慣。解決問題,要抓住主要,一針見血。千萬不要僅僅表面分析問題,從1循環(huán)到10萬,沒有理由的嘛!你為什么是循環(huán)到10萬而不是10萬零1呢?做事要講個因為所以,做程序員更應該懂得因果。不要憑著來做事,程序來不得半點,程序只需要理由。第九章文明時代而一切者多少年來在歷史的長河,也干了同樣一件事,就是吃著這些糧食!但是還有一部分人,雖然也是吃著這些糧食,但是他們?yōu)樯鐣陌l(fā)展做出了貢獻,做出貢獻的,不一定都是科學工作者,也有杰出的者。那么人類的文明時代的標志,不僅分任務!校長感覺自己是,不能讓手下這幫人都閑著吧。于是校長開始分任務了。好了,來了,問校長:“校長啊,這個1+21+2于3,校長趕快回:“啊,這個答案等于3。”一聽,感覺不錯:“嗯,不錯不錯,你這個大學管理的不錯,看來不會誤人啊,繼續(xù)努力,下次我來要考考你2+3等于多少。”“是!是!是!”校長擦了滿頭汗,心里說,幸虧這老師算的不錯。intadd(inta,int{intc=a+b;returnc;}int{intnum1=12;intnum2=29;intsum;sum=add(num1,num2);printf("%d\n",sum);sum=add(8,7);printf("%d\n",sum);sum=add(num1,4);printf("%d\n",sum);return0;}main函數(shù)呢?不再考慮加法的計算了,這個任務交給另外一個函數(shù)去做,那就是add函數(shù),add函數(shù)前面的時候,intaddaddintaintb)是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論