LAB-02 @ Second week  Ä~Äò¼ô±xµ{¦¡¶}µoÀô¹Ò»P  Learning system
         (¤W¶g¨S§ËÀ´±o½ÐÄ~Äòµo°Ý§â¥¦§ËÀ´! ¤u¨ã¨S½m¼ôªº­nÄ~Äò½m¼ô!)

LAB02 ½m²ß¤G ¤p©úªº¼Æ¾ÇÅ]ªk®Ñ²Ä¤G¶°

Problem: ½ÐÀ°¤p©ú¼g¤@­Ó¥iÀ°¥L§¹¦¨¥t¤@¥÷¼Æ¾Ç§@·~ªº¤pµ{¦¡
Purpose: 
      ½m²ßC »y¨¥±`¥Îªº¹Bºâ / »P % ¥H¤Î¤F¸Ñ¾ã¼Æ»P¹ê¼Æ¹Bºâ¤§¤£¦P !
      ¤W¶g§Ú­Ì¬Ý¹L¤F C »y¨¥µ{¦¡ªº ¡§¼Ë¤l¡¨ ³£ªø±o®t¤£¦h! ¤]ª¾¹D¤F­n¾Ç
      ¥ß©eÂà¥]¤uµ{ªººë¯«­nµ½©ó§Q¥Î¤lµ{¦¡©Î»¡ ¡§¨ç¼Æ¡¨(function; ¨ç¦¡);
      §Ú­Ì¤]¥Î¤F printf( ), sqrt( ) µ¥¨Æ¥ý¼g¦nªºµ{¦¡®w¨ç¼Æ (Library function).
	  ¥B²{¦b¤j®aÀ³¸Ó¤w¸g²ßºD C »y¨¥ªº­¼ªk³ºµM¥Î¬P¸¹ *, ¤£µ¥©ó«h¬O != ³o
      ¸ò¥­±`¤£¦P, ¤]¸ò¦³¨Ç»y¨¥¥Î < > ¥Nªí¤£µ¥©ó¤£¦P! ³o¶g­n¨Ó¬ã¨s°£ªk»P¨ú¾l¼Æ
      ªº¹Bºâ, ¥H¤Î¬ã¨s¾ã¼Æ°£ªk©M¹ê¼Æ°£ªkªº¤£¦P!
Description(»¡©ú):
      ¤p©ú±o¤o¶i¤Øƒº , ¥t¤@¥÷¦Ò¨÷¤]­n§AÀ°¦£!
  ¤£¹LÁÙ¬O¾ã¥÷ÃD«¬³£¤@¼Ë, ¨CÃD³£¦³¨â­Ó¾ã¼Æ(§A­n¿é¤J¨â­Ó¾ã¼Æ), 
  °²³]²Ä¤@¼Æ¬O m, ²Ä¤G¼Æ¬O n,
  µM«á¨CÃD­nºâ¥X m °£¥H n ªº°Ó,  m °£¥H n ªº¾l¼Æ, ¥H¤Î m °£¥H n ªº¹ê¼Æµ²ªG!
  ³o¦¸³W©wµª®×¤@«ßºâ¨ì¤p¼ÆÂI«á¤T¦ì;
  ½Ðª`·N¤´¬O¦³«Ü¦hÃD³á! ½Ð¦Ò¼{¦p¦ó¼g¥i¥HÀ°¤p©ú§ó¶¶§Q§¹¦¨§@·~!!

Hint:  
  (1)C »y¨¥¤¤¾ã¼Æ°£¥H¾ã¼Æ±o¨ì¬O¾ã¼Æ !  7/2 ±o¨ì 3 
  (2)¨ú¾l¼Æ¥Î %  (ª`·N³W©w¾ã¼Æ¤~¥i¥H¥Î³á)
  (3)¹ê¼Æ / ¾ã¼Æ ±o¨ì¹ê¼Æ; ©Ò¥H 7 * 1.0 /2 ±o¨ì 3.5
     ¤]´N¬O­Y m ©M n ³£¬O¾ã¼Æ, m *1.0 / n ´N¥i±o¨ì¹ê¼Æ !
  (4)¨C¦¸ªºm »P n ¥i¤À¨â¦¸Åª¤J, ¤]¥i¤@¦¸´N¥þŪ¤J, How?
  (5)¬°¤FÁ×§K³Q User ¶Ã¿é¤J§Ë¦º,
     ¥i¥Î fgets( )¥ý¾ã¦CŪ¤J¤@¦r¦ê char buf[99];
     µM«á¥Î sscanf §â¥¦­ÌŪ¤J ƒº
  (6)«ä¦Ò: ­Y¨Ï¥ÎªÌ¿é¤J¨â¼Æ¬O¥Î³r¸¹¹j¶}¦p  588, 23
  (7)«ä¦Ò: ­Y­n§ó¼F®`: ªÅ¥Õ¹j¶}¤]¥i, ³r¸¹¹j¶}¤]¥i; How ?? 
     °Ñ¦Ò¥H¤U¥y¤l: 
     char buf[99];
     long m, n;   // long ¬Oªø¾ã¼Æ, scanf¿é¤J®æ¦¡­n¥Î %ld
     int k;
     fgets(buf, sizeof(buf), stdin);
     k= sscanf("%ld,%ld", &m, &n);  // try ³r¸¹¹j¶}; §O§Ñ¤F & ¸¹©M®æ¦¡ %ld
     if(k < 2) k= sscanf("%ld %ld", &m, &n);   // try ªÅ¥Õ¹j¶}
         // ³o®É­Y k ¤´¤£¬O 2 «hªí¥Ü¨Ï¥ÎªÌ¨Ã¨S¥´¤J¨â­Ó¾ã¼Æ
         // ªü§A¥i¥H­n¨D User ¦A¿é¤J¤@­Ó·í n,
         // ¤]¥i¥H½|¥L¥Õ¦Y«ç¨S¥´¨â­Ó¼ÆµM«á­n¨D¥þ³¡­«·s¿é¤J ¡K 

 
More Hints to Lab-02 
 
//p20.c -- @CopyLeft by tsaiwn@csie.nctu.edu.tw
// Please remember the ASCII code of '0', 'A', 'a'
#include<stdio.h>
main( ) {
     printf(" %c ªº ASCII code¬O%d\n",  '0',  '0');
     printf(" %c ªº ASCII code¬O%d\n",  'A',  'A');
     printf(" %c ªº ASCII code¬O%d\n", 'a',  'a');
    printf("Hit RETURN key...");
    getchar( );
    return 0;
} // main(  
/****** Running Script:
C:\test2>gcc p20.c
C:\test2>a.exe
 0 ªº ASCII code¬O48
 A ªº ASCII code¬O65
 a ªº ASCII code¬O97

*************************************/

//p21.c -- @CopyLeft by tsaiwn@csie.nctu.edu.tw
// print out the char and the code of that char
#include<stdio.h>
main( ) {
    int i, k=0;
    for(i=65; i<=122; ++i) {
        printf(" %c ªº ASCII code", i);
        printf(" ¬O%d", i);
        ++k; printf(k%3==0? "\n" : "\t");
    } printf("\n" );
    printf("Hit RETURN key...");
    getchar( );
    return 0;
} // main(  
/****** Running Script:
C:\test2>gcc p21.c
C:\test2>a.exe
 A ªº ASCII code ¬O65    B ªº ASCII code ¬O66    C ªº ASCII code ¬O67
 D ªº ASCII code ¬O68    E ªº ASCII code ¬O69    F ªº ASCII code ¬O70
 G ªº ASCII code ¬O71    H ªº ASCII code ¬O72    I ªº ASCII code ¬O73
 J ªº ASCII code ¬O74    K ªº ASCII code ¬O75    L ªº ASCII code ¬O76
 M ªº ASCII code ¬O77    N ªº ASCII code ¬O78    O ªº ASCII code ¬O79
 P ªº ASCII code ¬O80    Q ªº ASCII code ¬O81    R ªº ASCII code ¬O82
 S ªº ASCII code ¬O83    T ªº ASCII code ¬O84    U ªº ASCII code ¬O85
 V ªº ASCII code ¬O86    W ªº ASCII code ¬O87    X ªº ASCII code ¬O88
 Y ªº ASCII code ¬O89    Z ªº ASCII code ¬O90    [ ªº ASCII code ¬O91
 \ ªº ASCII code ¬O92    ] ªº ASCII code ¬O93    ^ ªº ASCII code ¬O94
 _ ªº ASCII code ¬O95    ` ªº ASCII code ¬O96    a ªº ASCII code ¬O97
 b ªº ASCII code ¬O98    c ªº ASCII code ¬O99    d ªº ASCII code ¬O100
 e ªº ASCII code ¬O101   f ªº ASCII code ¬O102   g ªº ASCII code ¬O103
 h ªº ASCII code ¬O104   i ªº ASCII code ¬O105   j ªº ASCII code ¬O106
 k ªº ASCII code ¬O107   l ªº ASCII code ¬O108   m ªº ASCII code ¬O109
 n ªº ASCII code ¬O110   o ªº ASCII code ¬O111   p ªº ASCII code ¬O112
 q ªº ASCII code ¬O113   r ªº ASCII code ¬O114   s ªº ASCII code ¬O115
 t ªº ASCII code ¬O116   u ªº ASCII code ¬O117   v ªº ASCII code ¬O118
 w ªº ASCII code ¬O119   x ªº ASCII code ¬O120   y ªº ASCII code ¬O121
 z ªº ASCII code ¬O122
C:\test2>

*********************/

//p22.c -- @CopyLeft by tsaiwn@csie.nctu.edu.tw
// will print out "==¤j®a¦n=="
// Because that I fill in the chinese internal code into x[ ]
//½m²ß: ­×§ï¦¹µ{¦¡¨Ï¨ä¦L¥X§Aªº¾Ç¸¹»P©m¦W,
//¦ý¬Oµ{¦¡¤¤¤£¥i¬Ý¨ì§Aªº¾Ç¸¹»P©m¦W !
#include<stdio.h>
unsigned char x[9] = { 0 };
main( ) {
    int m = 0xa4,  n=0x6a;
    x[0] = m;  x[1]=n;
    x[2] = 0xae,  x[3]=97;
    x[4] = 0xa6,  x[5]=0x6e;
    printf("==%s==\n", x);
    printf("Hit RETURN key...");
    getchar( );
    return 0;
} // main(  
//½m²ß: ­×§ï¦¹µ{¦¡¨Ï¨ä¦L¥X§Aªº¾Ç¸¹»P©m¦W,
//¦ý¬Oµ{¦¡¤¤¤£¥i¬Ý¨ì§Aªº¾Ç¸¹»P©m¦W !
/*****
C:\test2>gcc p22.c

C:\test2>a.exe
==¤j®a¦n==

C:\test2>
*************************/

   
More sample programs in e3.nctu.edu.tw : p23.c, ¡K , p28.c

¦A¦¸¥mÀ{..
   §Æ±æ¤j®a¥i¥H«ù¤§¥H«í,  ¾¨¶q¤£¯Ê½Ò, ¤@°_¨Ó½m²ß, ¤@°_°Q½×,
¦³°ÝÃD(¥]¬A¥»½Òµ{ªº°ÝÃD»P§Aªº¥²­×½Ò­p·§ªº°ÝÃD)´NÁ|¤â§ä¤p§U±Ð¹L¨Ó°Ý:-)

­è¶}©lı±o«ÜÃøªº¦P¾Ç¤]¤£­n¦Ç¤ß! ­n§Ô­@ ! §Ô­@¦³¨Ç¬Ý¤£À´  ¡K 
  ¥u­n§A¨C¶g³£¦³¨Ó½m²ß, ºCºC·|¶VÀ´¶V¦h !  ¤@©w·|¶i¨B !!!

* ¤@©w­n§â§Ú­Ìµ¹ªº¨Ò¤l´ú¸Õ¬Ý¬Ý, ³Ì¦nÁÙ¯à¶Ã§ï¦A´ú¸Õ, 
  ¦³¬Ý¤£À´ªº´N­n¥ß¨èÁ|¤â½Ð±Ð§U±Ð¸s! 
  ©Ò¦³¨Ò¤l³£À´·íµM«Ü¦n, 
  ¦ý¬O¹J¨ì¸ûÃøÀ´ªº, ¥ý¤£ºÞ¤]¬O¥i¥Hªº, 
  ¦]¬° .. ¦³¨Ç¥u­n¦A¹L¤@°}¤l¤£¤p¤ß¦ÛµM´N·|À´¤F ƒº