javascript实现C语言经典程序题
最近在学习Javascript语言,看到网上很多都是在介绍Javascript如何解决网页上问题的代码,所以想另辟蹊径,用Javascript代码来实现C语言经典程序题。当然,这些C语言程序题也是比较简单,主要想通过Javascript语言实现,起到语法练习作用,也想来对比一下C语言和Javascript语言实现的相同点和不同点,从而巩固记忆,加强学习效果!!!
一、C语言经典程序题1
1.题目描述:
马克思的手稿中有这样一道有趣的数学题:有30个人,其中有男人,女人,小孩。他们在一家饭馆中吃饭,共花费50先令。如果每个男人吃饭要花3先令,每个女人要花2先令,每个小孩要花1先令,问男人,女人,小孩各多少人?
2.Javascript代码:
varman,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.解题说明:
这道题目算是很经典的题目了,跟“换零钱”是同一种类型的题目,只需要多个循环加一个判断就能罗列出每一种结果。从这道题看,Javascript的代码和C语言的代码基本上没有区别,因为for语句和if语句,Javascript语言和C语言是一样的。主要的不同体现在,变量的定义和输出语句上,总体感觉Javascript语言实现起来更方便,主要原因是Javascript弱类型语言,C语言是强类型语言。
二、C语言经典程序题2
1.题目描述:
计算e=1+1/1!+1/2!+1/3!……+1/n!的前50项
2.Javascript代码:
varn;
vars=1;
vare=1;
for(n=1;n<=50;n++)
{
s=s*n;
e=e+(1/s);
}
document.write(e);
3.解题说明:
这道题目算是一个比较简单的题目,实现也只用了一个for循环,与C语言代码相比,区别还是在变量定义和输出上。
三、C语言经典程序题3
1.题目描述:
输入一个数(不限位数),输出一个数字的位数。
2.Javascript代码:
<html>
<headlang="en">
<metacharset="UTF-8">
<title>C语言经典题目3</title>
<script>
functiondemo(){
varn=document.getElementById("number").value;
if(!isNaN(n)){varlen=n.length;
}
else{
alert("请输入数字!");
return;
}
document.getElementById("number").value=len;
}
</script>
</head>
<body>
<inputtype="text"id="number"width="100"height="50">
<buttononclick="demo()">点我啊</button>
</body>
</html>
3.解题说明:
这道题目比较有意思,如果用C语言实现的话,就需要不断给这个数字进行对10整除,已达到获取数字长度的目的。但Javascript语言的弱类型性质使得用Javascript解决这个题目特别简单,默认数字是字符串类型,只要判断这个字符串的长度即可。虽然有点偷懒,但也实现了功能。此外,实现这道题目也出现了和C语言不同的的东西,就是解决输入问题,C语言使用的是scanf,但Javascript没有此类函数,所以只能借助网页实现数字的输入。
四、C语言经典程序题4
1.题目描述:
打印九九乘法表
2.Javascript代码:
functiondemo()
{
vari,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.解题说明:
这道题目也算是很经典的题目了,但实现起来特别简单,只需要两个循环嵌套就可以了。和C语言的区别除了变量定义和输出外,此处还有一个,就是换行。C语言的换行只要使用\n就可以了,但网页不识别\n,所以只能使用html的<br/>来实现换行。
五、C语言经典程序题5
1.题目描述:
青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分)
2.Javascript代码:
<body>
<inputid="getScore"type="text">
<buttononclick="demo()">平均分</button>
<pid="txt"></p>
<script>
functiondemo(){
varstr=document.getElementById("getScore").value;
varscore=newArray();
score=str.split(",");
varmax=0;
varmin=10000;
varsum=0;
varave=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.解题说明
这道题目应该算是代码数量最多的了,虽然题目很简单,但在实现输入十个成绩的时候遇到了困难,因为不能像C语言那样一个一个输入。所以,我就采用输入1,2,3,4,5,6,7,8,9,10,用逗号的方式一次性输入10个进来。输入进来后,就要对字符串进行分割了,所以用到了split函数。
五、总结
终于用Javascript语言写完了5道C语言经典题目,也算是学习Javascript的一个很好的开端。回想在解决每个题目的过程,感觉Javascript真的很C语言很像,所以入手比较简单,只是在处理输入输出的时候,有点不一样。如果让我评价,Javascript语言和C语言那个好?我会觉得Javascript真的更容易更快的解决问题,我比较喜欢它的弱类型特性,再也不用担心申明变量类型出错的问题了。当然,C语言作为永垂不朽的经典语言,当然也是很好的。
以上就是本文的全部内容,希望对大家的学习有所帮助。