//p3b.c --- - ¥Î¤F¥ß©e¤uµ{Âà¥]·§©À: ¥t¼gfunction°µ¿é¤J ! // §Ú©î§Ú©î§Ú©î©î©î -- ¤u§@³£©î¶} ==> ¼g¦¨¨ç¼Æ (function; ¨ç¦¡) // ª`·N³o­Ó p3b.c ¤w¸g¼g¦nŪ¨ú¾ã¼Æ¨ç¼Æ getLong(), ½Ð¿é¤J -1 ªí¥Ü­n°±¤î ! // ³o­Ó p3b.c ´N¬O¤@¶}©lµ¹¤j®aªº p31.c ¦Aµy·L¸É¤W¤@ÂIÂI¤u§@¦Ó¤w! // ³op3b.c ¤w¸g¥i¥H¥¿½TŪ¤J¸ê®Æ, ¦ý¬OÁÙ¨S°µ²Î­p ! // ¦pªG§A¹ï©óÅܲ§¼Æ(variance)©M¼Ð·Ç®t(Standard Deviation)ÁÙ¤£¤ÓÁA¸Ñ, // ¦ý¬O«Ü·QÁA¸Ñ, «ØÄ³¥Î gogle.com ¬d¸ß "normal distribution" ¬Ý¬Ý! «Ü¦³½ì! // ¤]¥i¥H¬d "¤¤¥¡·¥­­©w¨½" ¬Ý¬Ý, ©Î¬d"Åܲ§¼Æ" ¤]¥i¬Ý¨ì¬ÛÃö¸ê®Æ! /////////////////////////////////////////////////////////////// // Try to write a function(¨ç¼Æ) long getLong( ); to read a Long int // µM«á¨C¦¸­nŪ¨ú¤@­Ó¾ã¼Æ´N ¡§¥s¡¨ (Call) ¥¦À°¦£°µ ! #include #include // (ª`·N) atol( ), atoi( ), ¥H¤Î atof( ) ³£«Å§i¦b long n, nBig; // how many data? nBig: how many bigger than average ? long getLong(void); // ¥ý«Å§i(Án©ú)·|¼g¤@­Ó getLong( ) function ƒº void statistics(void); // Án©ú·|¼g¤@­Ó¨S¦³°Ñ¼Æªºfunction ¥s°µ statistics long x, a[1234]; // ¦¹ÃD³W©w¦Ü¤Ö 999 ­Ó¤¸¯À; x ¬O¼È¦s¥Îªº double sum, s2, avg, variance, std; // ©M, ¥­¤è©M, ¥­§¡, Åܲ§¼Æ, ¼Ð·Ç®t // §âÅܼÆ(Variable)³£¼g¦b©Ò¦³function¥~ªí¥Ü©Ò¦³ function³£¥i¥H¥Î, // ªü´N¬O§Úªº´N¬O§Aªº, ¥s°µ Global variable ¾ãÅéÅÜ¼Æ ©Î ¥þ°ìÅÜ¼Æ // ³o¼Ë´N¤£¥Î³z¹L°Ñ¼Æ¶Ç¨Ó¶Ç¥h! ¤è«K, ¤£¹L±aµÛ¤@¨Ç¦MÀI (talk this later) int main( ) { // ¤j¦h¼Æ main program ³£³o¼Ë¶}ÀY n = nBig = 0; sum = s2 = 0.0; x = getLong( ); // ³z¹L getLong( ) Ū¨ú¾ã¼Æ¨ì x while(x != -1) { // (ª`·N) ³W©w -1 ¬O¥Nªíµ²§ô if( feof(stdin) ) break; // ­Y EOF ¤]­n°± ! (ª`·N) stdin ¬OÁä½L // ÁÙ¦³°Ú, ­Y¤w¸g EOF µo¥Í, getLong( ) ¦^¶Ç¨Óªº¤]¬O¿ùªº !!! a[n] = x; // §â x ©ñ¤J a[ ], ++n; // ¤@©w­n°Oªº³o¼Ë§â n ¥[ 1, ¤£µM·|Åܦ¨¤@ª½©ñ¤J a[0] ??? x = getLong( ); // ³z¹L getLong( ) Ū¨ú¤U¤@­Ó¾ã¼Æ¨ì x } // while; §O§Ñ¤F³o¬O while Loop ¤§ Loop body ªº§À¤Ú //Loop µ²§ô·|¨ì³o¸Ì¨Ó ! printf("Total %d data read.\n", n); statistics( ); // ²Î­pªº¨Æ´N¥æµ¹¥¦ getchar( ); // ·Q¿ìªk¼È°±¤@¤U, ¥H§K¥i¯à°{¤@¤U´N¤£¨£ return 0; // «ö·Ó³W©w, ¥Dµ{¦¡¶·¦^¶Ç 0 §i¶D¨t²Î»¡¥¿±`µ²§ô ! }// main( long getLong( ) { // ¥H«á­n§ï¿é¤Jªº¤èªk¥u­n§ï³o function ´N¥i :-) static char buf[99]; // a string buffer for input; why "static" ? long ans; // ª`·N­Y¥Î atof ­n§ï double; ¨ç¼ÆÀY³¡¤]­n§ï fgets(buf, sizeof(buf), stdin); // stdin ´N¬OÁä½L, ­n°O±o§t¤J ans = atol(buf); // ±q¦r¦ê¤¤Åª¥X long ¾ã¼Æ (long); ////// ­Y¬O¹ê¼Æ´N§â atol §ï¬° atof ³o¤]¬O§O¤H¼g¦nªº¨ç¼Æ(¨ç¦¡) return ans; } void statistics(void) { // ¥i¥H¬Ý¨ì©Ò¦³ Global ¾ãÅéÅܼÆ(¥þ°ìÅܼÆ) // ¥Î Loop ºâ¥XÃD¥Ø³W©wªº¦UºØ²Î­p¸ê®Æ // ÁÙ¤£·|ªº¥ý½m²ß¦L¥X©Ò¦³ 1 ¨ì n ªº©_¼Æ (Hint: k%2 !=0 «h k ´N¬O©_¼Æ) } // statistics( // ¦pªG§A¦³ K&R ½Ò¥», ¥i¬ã¨s½Ò¥»¤º°Q½× atoi »P atof ¨ç¼Æ¬O¦p¦ó¼gªº, // ¥i¥HÅý§A¼W¥[¥\¤O³á !