报课、招生咨询电话:010-51268840/41

首页 > 计算机考试 > 水平考试 >
→论坛登陆 用户名  密码  
程序员考试补课笔记-第六天

作者: 发布时间:2005-03-01 12:16:07 来源:中国招生考试在线
程序员考试补课笔记-第六天

今天的整个课程只有这么的一道题,但是学到的东西确很多。下面给出这条题目:

字符数字转为整数数值(字符可以任意:比如"342A")遇到其它否数字取前数。

我所写的程序如下,自认为写得不错:

#define N 10;

int catio(const char *str) /*const 的作用是常数,所以这里的地址不会返回到实参里*/

{

  int num[N];

  int i=0;j=1,n=0;

  for(;*str++;i++)

  {

    if(*str57)

    break; /*判断是否数字数值*/

    num[i]=*str-48;

  }

  for(i-=1;i>=0;i--)

  {

    n+=num[i]*j;

    j*=10; 

  }

return n;

}

你们说是不是比较简单呢?现在看不出等看完以下的另一个程序先断定吧。如下:


long catio(char c[]);

{

  int n,d;

  char *q,*p;

  long e=1,s=0;

  for(q=p=c,n=0;*p!='' && *p>='0' && *p0)

  {

  d=*q++;

  switch(d)

  {

  case 48: d=0;break; /*太长了,略*/

     :

     :

  case 57: d=9;break;

  }

  s+=d*(e/=10);

  n--;

}

return (s);

}


  现在比较来看看,不过虽然这条程序是比我那个复杂,但是也有他的思路和可取之处。像在那个for循环了,一条命令带过很方便也很简洁。其实我们可以继续改造这个程序,我们跟着老师的思路一步一步的把它进化,现在看看如下:

long catio(char c[]);

{

  int n,d;

  char *q,*p;

  long e=1,s=0;

  for(q=p=c,n=0;*p && *p>='0' && *p0)

  {

    d=*q++-'0';

    s+=d*(e/=10);

    n--;

  }

  return (s);

}


  这样是不是更简化了,那么还可以再简化下去吗?前面的我们是可以做出来啊,当是老师说还可以更简单,我们都只好怀着期待的心情去听了。他一步一步的说出来,第一就是在s+d*(e/10)这里可以变为另一种形式,s=s*10+d,如果按照这样又可以去掉一个多余的变量了,变量e就没有了。接下来的更不可意议了,我不知道怎么说,看看程序先吧。

long catio(char *c);

{

  long s=0;

  for(;*p && *c>='0' && *c
    育路网
 
 
                                        
评论】【加入收藏夹】【 】【打印】【关闭
育路网2007年夏令营联展
 更多有关新闻:
 
·[作文雅思写作高分必读:小作文句子模 ·[资讯中心湖北:2008上半年英语等级考试(P
·[经验共享成考高分考生必备临场得分策略 ·[复习指导成考高起点历史复习方法
·[招生简章上海外国语大学07年成考招生简章 ·[考试指南日语等级考试总括
·[成考动态广东惠州08年成考复习大纲确定 ·[真题法律硕士考研辅导:民法代理真题
·[二级真题2002年9月二级笔试试卷C语言程序 ·[复习指导2008年法硕联考民法学必须掌握的
·[复习指导法律硕士考研辅导:民法案例解析 ·[三级真题计算机等级考试三级数据库知识考
·[招生信息2008全国各高校法律硕士排名榜 ·[四级真题计算机等级考试四级笔试样题
·[复习指导2008年法律硕士大纲解析及考试预 ·[一级真题全国计算机等级考试一级WPS Offi
发表评论
用户名: 密码:
验证码: 匿名发表
课程搜索:
选择分类:
课程关键字:
课程 学校
 2008年首都高校秋季招生
北京理工大学2008年招生简章
北京文理研修学院2008年招生简章
北京建设大学2008年招生简章
北京中山学院2008年招生简章
北京城市学院2008年招生简章
培黎职业学院2008年招生简章
北京金融学院2008年招生简章
北京吉利大学2008年招生简章
北方工商管理学院2008年招生简章
 本周推荐课程
·初中起点雅思半年脱产 ·启德雅思6分冲刺课程
·新概念1+2册慢速精讲课 ·环球新托福100分强化
·北文王长喜四级强化班 ·英语四、六级培训课程
·海文考研数学课程 ·海文考研英语课程
·北大企业管理高级研修班 ·清华企业领导人研修班
·中美高中生交换项目 ·北工大中加学院2+2本科
·劳动和社会保障部物流师 ·物业管理师职业培训
·市场营销经理国际资格 ·现场管理实务培训
清华大学留学
中法管理硕士预科班
课程咨询热线:010-51268840 51268841
 最新新闻
·成考高分考生必备临场得分策略
·县科技局认真组织实施机关公务员和事业单位工
·江苏扬州邗江区组织初任公务员培训
·2008年吉林省各级机关考录公务员网上报名须知
·山东6名监督员首现公务员面试考场
·山东日照公务员考试456人进入面试
·时事评论:应届生真的不适合“考公”吗?
·"聚会之地"堪培拉:年轻的"公务员之城"风
·允许打工﹕来澳留学生签证费涨20澳元
·留学预科择校应三看
 育路社区            进入>>
 
学员报名服务中心: 北京北三环西路32号恒润中心1806(交通位置图
咨询电话:北京- 010-51268840/41 传真:010-51418040 上海-021-64392659、64397431
育路网-中国新锐教育社区: 北京站 | 上海站 | 郑州站| 武汉站
本站法律顾问: 邱清荣律师
北京育路互联科技有限公司版权所有 | 京ICP备05012189号