国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

圖形編程:絕對(duì)值函數(shù)Abs()的妙用

2019-11-17 04:39:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
   在學(xué)習(xí)ANSI C, Pascal, java等編程語(yǔ)言時(shí),經(jīng)常會(huì)碰到一些具有”對(duì)稱”性質(zhì)的圖形,要求運(yùn)用所學(xué)的知識(shí)編出這些圖形的小程序.絕大多數(shù)人都會(huì)想到通過(guò)數(shù)學(xué)知識(shí),來(lái)找出圖形具有何種規(guī)律,進(jìn)而得出問(wèn)題的解.但是,往往找規(guī)律,
得頗費(fèi)一番工夫.在學(xué)習(xí)ANSI C時(shí),碰到如右所示的一道題,要求打印下面種形式的n * n的方陣:

  當(dāng)時(shí),同學(xué)們都對(duì)絞盡腦汁來(lái)尋找規(guī)律,最后得出了多種解決方案,但最好的一種是用了1個(gè)for語(yǔ)句的三層嵌套, 利用覆蓋的方法來(lái)解決. 事后,我在想,是否存在一種更簡(jiǎn)單的算法呢?忽然,我發(fā)現(xiàn)就此題而言,3正好是5 * 5方陣的軸對(duì)稱中心.若以它為原點(diǎn),作出一個(gè)xoy平面的垂直坐標(biāo),對(duì)各個(gè)整數(shù)點(diǎn)的坐標(biāo)分析,又發(fā)現(xiàn)它們的橫坐標(biāo)與豎坐標(biāo)各自的它們的橫坐標(biāo)與豎坐標(biāo)各自的絕對(duì)值相加,正好是2.何不用絕對(duì)值函數(shù)Abs()或者Fabs()來(lái)試試?所以我定義了二個(gè)整型的變量i和j,分別用來(lái)定位整數(shù)點(diǎn)的橫,豎坐標(biāo),初值均為–2,步長(zhǎng)為1,控制條件是2,用了2個(gè)for語(yǔ)句的嵌套。當(dāng)滿足abs(i)<=abs(j)時(shí),作如下循環(huán):PRintf(“%3d”,3-abs(i)); 否則,printf(“%3d”,3-abs(j))。沒(méi)想到在Windows98 Turbo C 環(huán)境下調(diào)試,通過(guò)!好,這又激發(fā)了我的思路,能不能給出這種方陣的一般算法呢?

  n * n的方陣 :

  1 1 1 1 1
  1 2 2 2 1
  1 2 3 2 1
  1 2 2 2 1
  1 1 1 1 1

  思來(lái)想去,首先必須滿足整數(shù)n為奇數(shù)這一條件,然后看循環(huán)控制條件是否滿足abs(i)<=abs(j),分別作不同的輸出.在Turbo C環(huán)境下調(diào)試, 琢磨了好一陣子,又通過(guò)了。現(xiàn)在給出這種方陣的一般算法如下:

  #include
  #include
  void func(int n) /* n must be an odd number and n must be greater than zero*/
  { int i,j,temp;
  temp=n/2+1;
  for(i=-n/2;i<=n/2;i++)
  {for(j=-n/2;j<=n/2;j++)
  if(abs(i)>=abs(j))
     printf("%3d",temp-abs(i));
   else
     printf("%3d",temp-abs(j));
     printf("/n");
  }
  }

  main()
  { int n;
  printf("/nInput an integer number n:");
  scanf("%d",&n);
  func(n);
  }

  所以,在以后的學(xué)習(xí)過(guò)程中,碰到類似的要求打印具有“對(duì)稱”性質(zhì)的圖案時(shí),我們可以試著利用Abs()來(lái)解答,它能豐富我們編程的思路,達(dá)到意想不到的效果。(CSDN)


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武宣县| 永吉县| 万州区| 利川市| 瑞昌市| 准格尔旗| 乌海市| 南和县| 连城县| 科技| 弋阳县| 霍城县| 宁蒗| 太湖县| 株洲县| 剑河县| 安宁市| 杭州市| 太原市| 亚东县| 海林市| 台东县| 玛沁县| 井冈山市| 凤城市| 大新县| 临沧市| 南涧| 河间市| 洮南市| 汾西县| 县级市| 平安县| 喀喇| 镇安县| 阆中市| 五台县| 建昌县| 宝应县| 商城县| 商南县|