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 相关文章推荐
javascript Array对象基础知识小结
Nov 16 Javascript
juqery 学习之三 选择器 可见性 元素属性
Nov 25 Javascript
用dtree实现树形菜单 dtree使用说明
Oct 17 Javascript
jQuery实现带有洗牌效果的动画分页实例
Aug 31 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
Oct 14 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
Sep 13 Javascript
Vue的elementUI实现自定义主题方法
Feb 23 Javascript
Vue中JS动画与Velocity.js的结合使用
Feb 13 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 Javascript
vue简单练习 桌面时钟的实现代码实例
Sep 19 Javascript
vue表单数据交互提交演示教程
Nov 13 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
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
node.js中watch机制详解
2014/11/17 Javascript
javascript的BOM汇总
2015/07/16 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
Python手机号码归属地查询代码
2016/05/04 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
详解Python 函数如何重载?
2019/04/23 Python
python各层级目录下import方法代码实例
2020/01/20 Python
python计算导数并绘图的实例
2020/02/29 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
CSS3中媒体查询结合rem布局适配手机屏幕
2019/06/10 HTML / CSS
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
保洁主管岗位职责
2013/11/20 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
python神经网络Xception模型
2022/05/06 Python
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技
python manim实现排序算法动画示例
2022/08/14 Python