您的位置是:首页 >> 计算机 >> 计算机水平考试 >> 文章阅读

程序员考试补课笔记-第六天


日期:
2005-8-22 22:30:00
来源:
作者:
编辑
bbhboy
今天的整个课程只有这么的一道题,但是学到的东西确很多。下面给出这条题目:  

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

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

#define N 10;  

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

{  

  int num[N];  

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

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

  {  

    if(*str<48 || *str>57)  

    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!=’\0’ && *p>=’0’ && *p<=’9’;p++,n++,e*=10);  


  while(n>0)  

  {  

  d=*q++;  

  switch(d)  

  {  

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

     :  

     :  

  case 57: d=9;break;  

  }  

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

  n--;  

}  

return (s);  

}  


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

此文共有2页 上一页 1 2 下一页

关闭窗口

   兆联特别申明
1)除本站特殊规定外,本站所有信息均不拥有版权,仅供学习参考!
2)站内大部分内容注明出处及详细信息,版权归作者所有!如果您觉得不妥请及时与我站联系,我们将立即删除。
3)本站提供的资料您只有阅读权,并不等于您得到文章的所有权,本站反对将我站提供的资料直接使用。