//sqrtxxx.c -- by tsaiwn@csie.nctu.edu.tw // 一直求平方根, 直到輸入的是負數才停 // C++ 式的註解 comment , 但現在大多數的 C compiler 也可以用! #include #include #include double x; // (注意 1, 注意 2) 兩倍準的變數 variable; double getDBL(void); // 負責讀取一個實數, 寫成 function 比較有彈性:-) // 在各個 *.h 檔案內的大多是類似這樣的宣告 int main( ) { // 大多數 main program 都這樣開頭 // 以下這招 Loop forever 很好用, // 在 Loop 中間可以用 if ( 條件式 ) break; 離開 Loop for( ; ; ) { // Loop forever printf("Give me x: "); x = getDBL( ); // 寫成函數 (function; 函式) 是個很好的習慣 if( feof(stdin) ) break; // 如果已經 EOF 檔案結束就離開 if( x < 0 ) break; // (注意 3) 可以改用別的方法 printf(" sqrt 根號 %f = %f\n ", x, sqrt(x) ); // (注意 4) 可以問 user 要不要繼續? } // while printf("Bye bye!\n Hit ENTER key..."); getchar( ); return 0; // 告知作業系統(OS)表示我們這主程式正常結束 }// main( double getDBL( ) { // 以後要改輸入的方法只要改這 function 就可 :-) static char buf[999]; fgets(buf, sizeof buf, stdin); // 從鍵盤讀取一整列字串 return atof( buf); // 直接把 atof( ) 傳給我們的答案回傳給老闆! } // getDBZ( // 注意 atof( ) 宣告在 /*********** D:\test> path C:\Dev-Cpp\bin;%path% D:\test> gcc sqrtxxx.c D:\test> a.exe Give me x: 2 sqrt 根號 2.000000 =1.414214 Give me x: 5 sqrt 根號 5.000000 =2.236068 Give me x: 8 sqrt 根號 8.000000 =2.828427 Give me x: 9 sqrt 根號 9.000000 =3.000000 Give me x: 100 sqrt 根號 100.000000 =10.000000 Give me x: -1 Bye bye! Hit ENTER key... D:\test> *******************************************/