javascript實(shí)現(xiàn)C語(yǔ)言經(jīng)典程序題
最近在學(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)”是同一種類型的題目,只需要多個(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弱類型語(yǔ)言,C語(yǔ)言是強(qiáng)類型語(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)的話,就需要不斷給這個(gè)數(shù)字進(jìn)行對(duì)10整除,已達(dá)到獲取數(shù)字長(zhǎng)度的目的。但Javascript語(yǔ)言的弱類型性質(zhì)使得用Javascript解決這個(gè)題目特別簡(jiǎn)單,默認(rèn)數(shù)字是字符串類型,只要判斷這個(gè)字符串的長(zhǎng)度即可。雖然有點(diǎn)偷懶,但也實(shí)現(xiàn)了功能。此外,實(shí)現(xiàn)這道題目也出現(xiàn)了和C語(yǔ)言不同的的東西,就是解決輸入問(wèn)題,C語(yǔ)言使用的是scanf,但Javascript沒(mé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)題,我比較喜歡它的弱類型特性,再也不用擔(dān)心申明變量類型出錯(cuò)的問(wèn)題了。當(dāng)然,C語(yǔ)言作為永垂不朽的經(jīng)典語(yǔ)言,當(dāng)然也是很好的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
相關(guān)文章
javascript browser瀏覽器類型以及版本判斷代碼
在團(tuán)隊(duì)js框架建設(shè)過(guò)程中寫(xiě)的一段瀏覽器判斷代碼,喜歡的朋友可以參考下。2010-04-04
bootstrap+jQuery實(shí)現(xiàn)的動(dòng)態(tài)進(jìn)度條功能示例
這篇文章主要介紹了bootstrap+jQuery實(shí)現(xiàn)的動(dòng)態(tài)進(jìn)度條功能,結(jié)合完整實(shí)例形式分析了bootstrap+jQuery實(shí)現(xiàn)動(dòng)態(tài)進(jìn)度條的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
csdn 博客中實(shí)現(xiàn)運(yùn)行代碼功能實(shí)現(xiàn)
有時(shí)候因?yàn)閏sdn的博客經(jīng)常處理一些字符,導(dǎo)致代碼很多情況下,都不能正常運(yùn)行,給大家的閱讀帶來(lái)了麻煩,下面是腳本之家編輯簡(jiǎn)單的整理下。2009-08-08
TypeScript Type Innference(類型判斷)
TypeScript 是微軟開(kāi)發(fā)的 JavaScript 的超集,TypeScript兼容JavaScript,可以載入JavaScript代碼然后運(yùn)行。接下來(lái)通過(guò)本文給大家介紹TypeScript Type Innference(類型判斷)的相關(guān)知識(shí),需要的朋友參考下2016-03-03
JavaScript實(shí)現(xiàn)提交模式窗口后刷新父窗口數(shù)據(jù)的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)提交模式窗口后刷新父窗口數(shù)據(jù)的方法,涉及javascript窗口交互的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
詳解JavaScript中Promise的原理與應(yīng)用
Promise是JavaScript中的一個(gè)重要概念,也是現(xiàn)代JavaScript開(kāi)發(fā)中必不可少的一部分,本文主要介紹了Promise的實(shí)現(xiàn)原理、使用方法及常見(jiàn)應(yīng)用場(chǎng)景,需要的可以收藏一下2023-06-06

