自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

程序員考試筆記六:一道編程題

企業(yè)動(dòng)態(tài)
程序員考試筆記(連載中)

今天的整個(gè)課程只有這么的一道題,但是學(xué)到的東西確很多。下面給出這條題目:

字符數(shù)字轉(zhuǎn)為整數(shù)數(shù)值(字符可以任意:比如"342A")遇到其它否數(shù)字取前數(shù)。

我所寫(xiě)的程序如下,自認(rèn)為寫(xiě)得不錯(cuò):

#define N 10;
int catio(const char *str) /*const 的作用是常數(shù),所以這里的地址不會(huì)返回到實(shí)參里*/
{
  int num[N];
  int i=0;j=1,n=0;
  for(;*str++;i++)
  {
    if(*str<48 || *str>57)
    break; /*判斷是否數(shù)字?jǐn)?shù)值*/
    num[i]=*str-48;
  }
  for(i-=1;i>=0;i--)
  {
    n+=num[i]*j;
    j*=10; 
  }
return n;
}

你們說(shuō)是不是比較簡(jiǎn)單呢?現(xiàn)在看不出等看完以下的另一個(gè)程序先斷定吧。如下:

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; /*太長(zhǎng)了,略*/
     :
     :
  case 57: d=9;break;
  }
  s+=d*(e/=10);
  n--;
}
return (s);
} #p#

  現(xiàn)在比較來(lái)看看,不過(guò)雖然這條程序是比我那個(gè)復(fù)雜,但是也有他的思路和可取之處。像在那個(gè)for循環(huán)了,一條命令帶過(guò)很方便也很簡(jiǎn)潔。其實(shí)我們可以繼續(xù)改造這個(gè)程序,我們跟著老師的思路一步一步的把它進(jìn)化,現(xià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' && *p<='9';p++,n++,e*=10);

  while(n>0)
  {
    d=*q++-'0';
    s+=d*(e/=10);
    n--;
  }
  return (s);
}

  這樣是不是更簡(jiǎn)化了,那么還可以再簡(jiǎn)化下去嗎?前面的我們是可以做出來(lái)啊,當(dāng)是老師說(shuō)還可以更簡(jiǎn)單,我們都只好懷著期待的心情去聽(tīng)了。他一步一步的說(shuō)出來(lái),***就是在s+d*(e/10)這里可以變?yōu)榱硪环N形式,s=s*10+d,如果按照這樣又可以去掉一個(gè)多余的變量了,變量e就沒(méi)有了。接下來(lái)的更不可意議了,我不知道怎么說(shuō),看看程序先吧。
long catio(char *c);
{
  long s=0;
  for(;*p && *c>='0' && *c<='9';s=s*10+*c++-'0');
  return (s);
}
  大家看到了嗎?原來(lái)這么長(zhǎng)的程序可以一再簡(jiǎn)化到這個(gè)地步,這就是C語(yǔ)言的靈活了(我好像已經(jīng)說(shuō)了好幾遍了,真的沒(méi)有辦法,不得不贊嘆)。
  今天就是這么一題,可真的有意外驚喜呢!好了,現(xiàn)在不寫(xiě)了,還有十道練習(xí)題等著我去做呢,大家也要努力喔!

【相關(guān)文章】

  1. 程序員考試筆記五:循環(huán)語(yǔ)句
責(zé)任編輯:丁小雨 來(lái)源: 51CTO
相關(guān)推薦

2009-01-16 19:49:49

程序員考試數(shù)組指針

2009-01-07 21:03:53

程序員循環(huán)語(yǔ)句

2009-01-07 21:00:05

2009-01-19 19:18:44

程序員考試筆記

2009-01-08 21:25:51

程序員筆記

2009-01-10 23:38:16

程序員考試筆記

2009-01-05 15:56:00

軟考程序員

2013-12-30 13:11:03

2022-01-19 11:39:15

數(shù)據(jù)治理大數(shù)據(jù)數(shù)據(jù)

2021-02-04 06:00:59

程序員編址系統(tǒng)

2012-08-30 10:05:40

編程編程語(yǔ)言程序員

2013-11-14 10:05:25

程序員職業(yè)轉(zhuǎn)型

2024-03-18 13:32:11

2013-04-19 10:44:05

程序員禪道

2012-06-15 09:54:58

程序員編程開(kāi)發(fā)

2014-06-13 11:03:19

程序員

2011-11-11 16:20:22

編程

2011-09-30 11:13:31

51CTO博客一周熱門(mén)程序員

2013-04-02 09:58:16

2019-02-15 20:26:37

程序員職業(yè)道路發(fā)展方向
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)