javascript實現(xiàn)C語言經(jīng)典程序題
最近在學習Javascript語言,看到網(wǎng)上很多都是在介紹Javascript如何解決網(wǎng)頁上問題的代碼,所以想另辟蹊徑,用Javascript代碼來實現(xiàn)C語言經(jīng)典程序題。當然,這些C語言程序題也是比較簡單,主要想通過Javascript語言實現(xiàn),起到語法練習作用,也想來對比一下C語言和Javascript語言實現(xiàn)的相同點和不同點,從而鞏固記憶,加強學習效果!??!
一、C語言經(jīng)典程序題1
1. 題目描述:
馬克思的手稿中有這樣一道有趣的數(shù)學題:有30個人,其中有男人,女人,小孩。他們在一家飯館中吃飯,共花費50先令。 如果每個男人吃飯要花3先令,每個女人要花2先令, 每個小孩要花1先令,問男人,女人,小孩各多少人?
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. 解題說明:
這道題目算是很經(jīng)典的題目了,跟“換零錢”是同一種類型的題目,只需要多個循環(huán)加一個判斷就能羅列出每一種結果。從這道題看,Javascript的代碼和C語言的代碼基本上沒有區(qū)別,因為for語句和if語句,Javascript語言和C語言是一樣的。主要的不同體現(xiàn)在,變量的定義和輸出語句上,總體感覺Javascript語言實現(xiàn)起來更方便,主要原因是Javascript弱類型語言,C語言是強類型語言。
二、C語言經(jīng)典程序題2
1. 題目描述:
計算e=1+1/1!+1/2!+1/3!……+1/n!的前50項
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. 解題說明:
這道題目算是一個比較簡單的題目,實現(xiàn)也只用了一個for循環(huán),與C語言代碼相比,區(qū)別還是在變量定義和輸出上。
三、C語言經(jīng)典程序題3
1. 題目描述:
輸入一個數(shù)(不限位數(shù)),輸出一個數(shù)字的位數(shù)。
2. Javascript代碼:
<html> <head lang="en"> <meta charset="UTF-8"> <title>C語言經(jīng)典題目3</title> <script> function demo() { var n = document.getElementById("number").value; if (!isNaN(n)) {var len = n.length; } else{ alert("請輸入數(shù)字!"); return; } document.getElementById("number").value = len; } </script> </head> <body> <input type="text" id="number" width="100" height="50"> <button onclick="demo()">點我啊</button> </body> </html>
3. 解題說明:
這道題目比較有意思,如果用C語言實現(xiàn)的話,就需要不斷給這個數(shù)字進行對10整除,已達到獲取數(shù)字長度的目的。但Javascript語言的弱類型性質使得用Javascript解決這個題目特別簡單,默認數(shù)字是字符串類型,只要判斷這個字符串的長度即可。雖然有點偷懶,但也實現(xiàn)了功能。此外,實現(xiàn)這道題目也出現(xiàn)了和C語言不同的的東西,就是解決輸入問題,C語言使用的是scanf,但Javascript沒有此類函數(shù),所以只能借助網(wǎng)頁實現(xiàn)數(shù)字的輸入。
四、C語言經(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. 解題說明:
這道題目也算是很經(jīng)典的題目了,但實現(xiàn)起來特別簡單,只需要兩個循環(huán)嵌套就可以了。和C語言的區(qū)別除了變量定義和輸出外,此處還有一個,就是換行。C語言的換行只要使用\n就可以了,但網(wǎng)頁不識別\n,所以只能使用html的<br/>來實現(xiàn)換行。
五、C語言經(jīng)典程序題5
1. 題目描述:
青年歌手參加歌曲大獎賽,有10個評委打分,試編程求選手的平均得分(去掉一個最高分和一個最低分)
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. 解題說明
這道題目應該算是代碼數(shù)量最多的了,雖然題目很簡單,但在實現(xiàn)輸入十個成績的時候遇到了困難,因為不能像C語言那樣一個一個輸入。所以,我就采用輸入1,2,3,4,5,6,7,8,9,10,用逗號的方式一次性輸入10個進來。輸入進來后,就要對字符串進行分割了,所以用到了split函數(shù)。
五、總結
終于用Javascript語言寫完了5道C語言經(jīng)典題目,也算是學習Javascript的一個很好的開端?;叵朐诮鉀Q每個題目的過程,感覺Javascript真的很C語言很像,所以入手比較簡單,只是在處理輸入輸出的時候,有點不一樣。如果讓我評價,Javascript語言和C語言那個好?我會覺得Javascript真的更容易更快的解決問題,我比較喜歡它的弱類型特性,再也不用擔心申明變量類型出錯的問題了。當然,C語言作為永垂不朽的經(jīng)典語言,當然也是很好的。
以上就是本文的全部內容,希望對大家的學習有所幫助。
相關文章
javascript browser瀏覽器類型以及版本判斷代碼
在團隊js框架建設過程中寫的一段瀏覽器判斷代碼,喜歡的朋友可以參考下。2010-04-04bootstrap+jQuery實現(xiàn)的動態(tài)進度條功能示例
這篇文章主要介紹了bootstrap+jQuery實現(xiàn)的動態(tài)進度條功能,結合完整實例形式分析了bootstrap+jQuery實現(xiàn)動態(tài)進度條的具體步驟與相關操作技巧,需要的朋友可以參考下2017-05-05csdn 博客中實現(xiàn)運行代碼功能實現(xiàn)
有時候因為csdn的博客經(jīng)常處理一些字符,導致代碼很多情況下,都不能正常運行,給大家的閱讀帶來了麻煩,下面是腳本之家編輯簡單的整理下。2009-08-08TypeScript Type Innference(類型判斷)
TypeScript 是微軟開發(fā)的 JavaScript 的超集,TypeScript兼容JavaScript,可以載入JavaScript代碼然后運行。接下來通過本文給大家介紹TypeScript Type Innference(類型判斷)的相關知識,需要的朋友參考下2016-03-03JavaScript實現(xiàn)提交模式窗口后刷新父窗口數(shù)據(jù)的方法
這篇文章主要介紹了JavaScript實現(xiàn)提交模式窗口后刷新父窗口數(shù)據(jù)的方法,涉及javascript窗口交互的相關操作技巧,需要的朋友可以參考下2017-06-06