javascript实现C语言经典程序题


Posted in Javascript onNovember 29, 2015

最近在学习Javascript语言,看到网上很多都是在介绍Javascript如何解决网页上问题的代码,所以想另辟蹊径,用Javascript代码来实现C语言经典程序题。当然,这些C语言程序题也是比较简单,主要想通过Javascript语言实现,起到语法练习作用,也想来对比一下C语言和Javascript语言实现的相同点和不同点,从而巩固记忆,加强学习效果!!!

一、C语言经典程序题1

1. 题目描述:

马克思的手稿中有这样一道有趣的数学题:有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. 解题说明:

这道题目算是很经典的题目了,跟“换零钱”是同一种类型的题目,只需要多个循环加一个判断就能罗列出每一种结果。从这道题看,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代码:

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. 解题说明:

这道题目算是一个比较简单的题目,实现也只用了一个for循环,与C语言代码相比,区别还是在变量定义和输出上。

三、C语言经典程序题3

1. 题目描述:

输入一个数(不限位数),输出一个数字的位数。

2. Javascript代码:

<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>C语言经典题目3</title>
  <script>
    function demo() {
      var n = document.getElementById("number").value;
      if (!isNaN(n)) {var len = n.length;
      }
      else{
        alert("请输入数字!");
        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语言实现的话,就需要不断给这个数字进行对10整除,已达到获取数字长度的目的。但Javascript语言的弱类型性质使得用Javascript解决这个题目特别简单,默认数字是字符串类型,只要判断这个字符串的长度即可。虽然有点偷懒,但也实现了功能。此外,实现这道题目也出现了和C语言不同的的东西,就是解决输入问题,C语言使用的是scanf,但Javascript没有此类函数,所以只能借助网页实现数字的输入。

四、C语言经典程序题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. 解题说明:

这道题目也算是很经典的题目了,但实现起来特别简单,只需要两个循环嵌套就可以了。和C语言的区别除了变量定义和输出外,此处还有一个,就是换行。C语言的换行只要使用\n就可以了,但网页不识别\n,所以只能使用html的<br/>来实现换行。

五、C语言经典程序题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. 解题说明

这道题目应该算是代码数量最多的了,虽然题目很简单,但在实现输入十个成绩的时候遇到了困难,因为不能像C语言那样一个一个输入。所以,我就采用输入1,2,3,4,5,6,7,8,9,10,用逗号的方式一次性输入10个进来。输入进来后,就要对字符串进行分割了,所以用到了split函数。

五、总结

终于用Javascript语言写完了5道C语言经典题目,也算是学习Javascript的一个很好的开端。回想在解决每个题目的过程,感觉Javascript真的很C语言很像,所以入手比较简单,只是在处理输入输出的时候,有点不一样。如果让我评价,Javascript语言和C语言那个好?我会觉得Javascript真的更容易更快的解决问题,我比较喜欢它的弱类型特性,再也不用担心申明变量类型出错的问题了。当然,C语言作为永垂不朽的经典语言,当然也是很好的。

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
js实现兼容IE6与IE7的DIV高度
May 13 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
Nov 25 Javascript
IE的fireEvent方法概述及应用
Feb 22 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
js购物车实现思路及代码(个人感觉不错)
Dec 23 Javascript
json的定义、标准格式及json字符串检验
May 11 Javascript
用JavaScript实现使用鼠标画线的示例代码
Aug 19 Javascript
AngularJS通过$http和服务器通信详解
Sep 21 Javascript
JavaScript正则替换HTML标签功能示例
Mar 02 Javascript
Vue中自定义全局组件的实现方法
Dec 08 Javascript
微信小程序页面间值传递的两种方法
Nov 26 Javascript
微信小程序纯文本实现@功能
Apr 08 Javascript
JavaScript学习小结(7)之JS RegExp
Nov 29 #Javascript
整理Javascript基础入门学习笔记
Nov 29 #Javascript
jquery+json实现数据二级联动的方法
Nov 28 #Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 #Javascript
Javascript页面跳转常见实现方式汇总
Nov 28 #Javascript
Javascript编程之继承实例汇总
Nov 28 #Javascript
Javascript编程中几种继承方式比较分析
Nov 28 #Javascript
You might like
用PHP查询域名状态whois的类
2006/11/25 PHP
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
php 启动时报错的简单解决方法
2014/01/27 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
深入理解Node.js的HTTP模块
2016/10/12 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
Django后台admin的使用详解
2019/07/08 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
物业门卫岗位职责
2013/12/28 职场文书
担保书怎么写
2014/04/01 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
2016年端午节寄语
2015/12/04 职场文书