最近在學(xué)習(xí)Javascript語(yǔ)言,看到網(wǎng)上很多都是在介紹Javascript如何解決網(wǎng)頁(yè)上問(wèn)題的代碼,所以想另辟蹊徑,用Javascript代碼來(lái)實(shí)現(xiàn)C語(yǔ)言經(jīng)典程序題。當(dāng)然,這些C語(yǔ)言程序題也是比較簡(jiǎn)單,主要想通過(guò)Javascript語(yǔ)言實(shí)現(xiàn),起到語(yǔ)法練習(xí)作用,也想來(lái)對(duì)比一下C語(yǔ)言和Javascript語(yǔ)言實(shí)現(xiàn)的相同點(diǎn)和不同點(diǎn),從而鞏固記憶,加強(qiáng)學(xué)習(xí)效果!!!
一、C語(yǔ)言經(jīng)典程序題1
1. 題目描述:
馬克思的手稿中有這樣一道有趣的數(shù)學(xué)題:有30個(gè)人,其中有男人,女人,小孩。他們?cè)谝患绎堭^中吃飯,共花費(fèi)50先令。 如果每個(gè)男人吃飯要花3先令,每個(gè)女人要花2先令, 每個(gè)小孩要花1先令,問(wèn)男人,女人,小孩各多少人?
2. Javascript代碼:
var man, woman, child;for (man = 0; man < 17; man ++) { for (woman = 0; woman <= 25; woman ++) { child = 30 - man - woman; if ( (man + woman + child == 30) && (man * 3 + woman * 2 + child == 50) ) { document.write("男人:"+man+","+"女人:"+woman+","+"小孩:"+child +"</br>"); } }}
3. 解題說(shuō)明:
這道題目算是很經(jīng)典的題目了,跟“換零錢(qián)”是同一種類(lèi)型的題目,只需要多個(gè)循環(huán)加一個(gè)判斷就能羅列出每一種結(jié)果。從這道題看,Javascript的代碼和C語(yǔ)言的代碼基本上沒(méi)有區(qū)別,因?yàn)閒or語(yǔ)句和if語(yǔ)句,Javascript語(yǔ)言和C語(yǔ)言是一樣的。主要的不同體現(xiàn)在,變量的定義和輸出語(yǔ)句上,總體感覺(jué)Javascript語(yǔ)言實(shí)現(xiàn)起來(lái)更方便,主要原因是Javascript弱類(lèi)型語(yǔ)言,C語(yǔ)言是強(qiáng)類(lèi)型語(yǔ)言。
二、C語(yǔ)言經(jīng)典程序題2
1. 題目描述:
計(jì)算e=1+1/1!+1/2!+1/3!……+1/n!的前50項(xiàng)
2. Javascript代碼:
var n;var s = 1;var e = 1;for (n = 1; n <= 50; n ++){ s = s * n; e = e + (1 / s);}document.write(e);
3. 解題說(shuō)明:
這道題目算是一個(gè)比較簡(jiǎn)單的題目,實(shí)現(xiàn)也只用了一個(gè)for循環(huán),與C語(yǔ)言代碼相比,區(qū)別還是在變量定義和輸出上。
三、C語(yǔ)言經(jīng)典程序題3
1. 題目描述:
輸入一個(gè)數(shù)(不限位數(shù)),輸出一個(gè)數(shù)字的位數(shù)。
2. Javascript代碼:
<html><head lang="en"> <meta charset="UTF-8"> <title>C語(yǔ)言經(jīng)典題目3</title> <script> function demo() { var n = document.getElementById("number").value; if (!isNaN(n)) {var len = n.length; } else{ alert("請(qǐng)輸入數(shù)字!"); return; } document.getElementById("number").value = len; } </script></head><body> <input type="text" id="number" width="100" height="50"> <button onclick="demo()">點(diǎn)我啊</button></body></html>
3. 解題說(shuō)明:
這道題目比較有意思,如果用C語(yǔ)言實(shí)現(xiàn)的話(huà),就需要不斷給這個(gè)數(shù)字進(jìn)行對(duì)10整除,已達(dá)到獲取數(shù)字長(zhǎng)度的目的。但Javascript語(yǔ)言的弱類(lèi)型性質(zhì)使得用Javascript解決這個(gè)題目特別簡(jiǎn)單,默認(rèn)數(shù)字是字符串類(lèi)型,只要判斷這個(gè)字符串的長(zhǎng)度即可。雖然有點(diǎn)偷懶,但也實(shí)現(xiàn)了功能。此外,實(shí)現(xiàn)這道題目也出現(xiàn)了和C語(yǔ)言不同的的東西,就是解決輸入問(wèn)題,C語(yǔ)言使用的是scanf,但Javascript沒(méi)有此類(lèi)函數(shù),所以只能借助網(wǎng)頁(yè)實(shí)現(xiàn)數(shù)字的輸入。
四、C語(yǔ)言經(jīng)典程序題4
1. 題目描述:
打印九九乘法表
2. Javascript代碼:
function demo(){ var i, j, s; for(i = 1; i < 10; i ++) { for(j = 1; j <= i; j ++) { s = i * j; document.write(j+"*"+i+"="+s+" "); } document.write("<br/>"); }}
3. 解題說(shuō)明:
這道題目也算是很經(jīng)典的題目了,但實(shí)現(xiàn)起來(lái)特別簡(jiǎn)單,只需要兩個(gè)循環(huán)嵌套就可以了。和C語(yǔ)言的區(qū)別除了變量定義和輸出外,此處還有一個(gè),就是換行。C語(yǔ)言的換行只要使用/n就可以了,但網(wǎng)頁(yè)不識(shí)別/n,所以只能使用html的<br/>來(lái)實(shí)現(xiàn)換行。
五、C語(yǔ)言經(jīng)典程序題5
1. 題目描述:
青年歌手參加歌曲大獎(jiǎng)賽,有10個(gè)評(píng)委打分,試編程求選手的平均得分(去掉一個(gè)最高分和一個(gè)最低分)
2. Javascript代碼:
<body><input id="getScore" type="text"><button onclick="demo()">平均分</button><p id="txt"></p><script> function demo() { var str = document.getElementById("getScore").value; var score = new Array(); score= str.split(","); var max = 0; var min = 10000; var sum = 0; var ave = 0; for(i=0;i<score.length;i++){ if(score[i]>max) { max = score[i]; } if(score[i]<min) { min = score[i]; } sum = sum+score[i]; } ave = (sum-max-min)/8; document.getElementById("txt").innerHTML = ave; }</script></body>
3. 解題說(shuō)明
這道題目應(yīng)該算是代碼數(shù)量最多的了,雖然題目很簡(jiǎn)單,但在實(shí)現(xiàn)輸入十個(gè)成績(jī)的時(shí)候遇到了困難,因?yàn)椴荒芟馛語(yǔ)言那樣一個(gè)一個(gè)輸入。所以,我就采用輸入1,2,3,4,5,6,7,8,9,10,用逗號(hào)的方式一次性輸入10個(gè)進(jìn)來(lái)。輸入進(jìn)來(lái)后,就要對(duì)字符串進(jìn)行分割了,所以用到了split函數(shù)。
五、總結(jié)
終于用Javascript語(yǔ)言寫(xiě)完了5道C語(yǔ)言經(jīng)典題目,也算是學(xué)習(xí)Javascript的一個(gè)很好的開(kāi)端。回想在解決每個(gè)題目的過(guò)程,感覺(jué)Javascript真的很C語(yǔ)言很像,所以入手比較簡(jiǎn)單,只是在處理輸入輸出的時(shí)候,有點(diǎn)不一樣。如果讓我評(píng)價(jià),Javascript語(yǔ)言和C語(yǔ)言那個(gè)好?我會(huì)覺(jué)得Javascript真的更容易更快的解決問(wèn)題,我比較喜歡它的弱類(lèi)型特性,再也不用擔(dān)心申明變量類(lèi)型出錯(cuò)的問(wèn)題了。當(dāng)然,C語(yǔ)言作為永垂不朽的經(jīng)典語(yǔ)言,當(dāng)然也是很好的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。