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执行效率与性能提升方案
Dec 21 Javascript
js的image onload事件使用遇到的问题
Jul 15 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
JS中mouseover和mouseout多次触发问题如何解决
Jun 06 Javascript
VUE开发一个图片轮播的组件示例代码
Mar 06 Javascript
vue实现验证码输入框组件
Dec 14 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
Sep 04 Javascript
element-ui table span-method(行合并)的实现代码
Dec 20 Javascript
通过说明与示例了解js五种设计模式
Jun 17 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
Aug 20 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
Sep 23 Javascript
vue学习笔记之slot插槽基本用法实例分析
Feb 01 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
深入浅析安装PhpStorm并激活的步骤详解
2020/09/17 PHP
js操作select控件的几种方法
2010/06/02 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
jQuery的框架介绍
2016/05/11 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
vuex页面刷新导致数据丢失的解决方案
2020/12/10 Vue.js
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
python控制台中实现进度条功能
2015/11/10 Python
Python中内建函数的简单用法说明
2016/05/05 Python
Python中return self的用法详解
2018/07/27 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
简单了解python的一些位运算技巧
2019/07/13 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
Python内存映射文件读写方式
2020/04/24 Python
python学习笔记之多进程
2020/08/06 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
会计学专业自荐信
2014/06/25 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js