tag:blogger.com,1999:blog-11003646.post112126193161804982..comments2023-11-13T10:13:32.588+08:00Comments on sakananote: C's noteMaxhttp://www.blogger.com/profile/01355936003893734726noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-11003646.post-1121433269423749152005-07-15T21:14:00.000+08:002005-07-15T21:14:00.000+08:00main(){ int eng,math; ...main()<BR/>{<BR/> int eng,math; <BR/> <BR/> eng = math = 0; // 初值設定是個好習慣,不寫也可以.<BR/> <BR/> printf("input eng : "); scanf("%d",&eng); <BR/> printf("input math: "); scanf("%d",&math);<BR/> printf("sum=%d\n", eng+math );<BR/> printf("avg=%d\n", (eng+math)/2 ); // 運算結果還是整數型態,不會有小數資料 <BR/> printf("avg=%f\n", (eng+math)/2 ); // 運算結果是整數型態,不可使用%f <BR/><BR/> // 當資料中有多個型態資料,所有資料會自動晉升成最大的資料型態<BR/> // eng 與 math 會自動複製成另外的float型態再行計算,結果為float型態的資料 <BR/> printf("avg=%.2f\n", (eng+math)/2.0 ); <BR/> <BR/> system("pause"); <BR/>}Maxhttps://www.blogger.com/profile/01355936003893734726noreply@blogger.comtag:blogger.com,1999:blog-11003646.post-1121431769107982972005-07-15T20:49:00.000+08:002005-07-15T20:49:00.000+08:00main(){ int i; pr...main()<BR/>{<BR/> int i; <BR/> <BR/> printf("i=%d <--目前記憶體所殘留的值,若未主動變更不會改變!\n",i);<BR/> printf("input int i: ");<BR/> <BR/> // 未使用 & 運算子求出變數的記憶體位置,<BR/> // 以i的值做為存放輸入資料的記憶體位址,,無法預期結果,嚴重可能當機 <BR/> // scanf("%d", i ); <BR/> <BR/> // 編譯可通過,輸入的資料將放入記憶體1000的位址,無法預期結果,嚴重可能當機 <BR/> // scanf("%d",1000); <BR/> <BR/> scanf("%d", &i ); // 正確 , 使用 & 運算子 , 求出i的記憶體位址 <BR/> printf("i=%d\n",i);<BR/> <BR/> float f;<BR/> printf("scanf(\"%%d\",&f) , input float f: ");<BR/> scanf("%d",&f);<BR/> printf("f=%f <----結果無法正確,scanf需使用%%f格式.\n",f);<BR/> printf("scanf(\"%%f\",&f) , input float f: ");<BR/> scanf("%f",&f);<BR/> printf("f=%f <----正確\n",f);<BR/> printf("f=%f <-----忘了提供f變數居然.....\n");<BR/> <BR/> system("pause"); <BR/>}Maxhttps://www.blogger.com/profile/01355936003893734726noreply@blogger.comtag:blogger.com,1999:blog-11003646.post-1121429173973677552005-07-15T20:06:00.000+08:002005-07-15T20:06:00.000+08:00printf("------------------------------------------...printf("-----------------------------------------------\n");<BR/> printf("dec=%d oct=%o hex=%X\n",15,15,15); // 10進位,8進位,16進位格式顯示 <BR/> printf("dec=%d oct=%o hex=%X\n",16,16,16);<BR/> printf("%d %u\n",-1,-1); // -1 用%u 正整數格式顯示不會是-1 <BR/> printf("%d %f <---整數無法以%%f正確顯示\n",10,10); // 10 用%f 浮點數格式結果超出預期 <BR/> f=3.14159;<BR/> printf("%d %f <---%%d無法正確顯示3.14159,還連帶影響%%f的結果\n",f,f); // f 浮點數用%d整數格式顯示,兩個結果皆超出預期 <BR/> printf("%f <---正確 , 資料與格式型態必須相符才能保證正確!\n\n",f); // 正確Maxhttps://www.blogger.com/profile/01355936003893734726noreply@blogger.comtag:blogger.com,1999:blog-11003646.post-1121426837507872562005-07-15T19:27:00.000+08:002005-07-15T19:27:00.000+08:00main(){ // 較舊版的編譯器只准許在函式最前面宣告變數,即int i處! ...main()<BR/>{<BR/> // 較舊版的編譯器只准許在函式最前面宣告變數,即int i處!<BR/> int w=6; <BR/> printf("%0*d\n",w,i); // 前方空白補0且寬度由參數指定 <BR/> <BR/> printf("-----------------------------------------------\n");<BR/> float f=124.65;<BR/> printf("*%f*\n",f);<BR/> printf("*%3.2f*\n",f);<BR/> printf("*%8.2f*\n",f);<BR/> printf("*%-8.2f*\n",f);<BR/> printf("%.2f\n",f); // 可以只指定小數的位數,總寬度不指定 <BR/> printf("*%*.*f*\n",10,3,f); // 自訂總寬度與小數位數 <BR/> printf("*%0*.*f*\n",10,3,f); // 補0與自訂總寬度與小數位數<BR/> <BR/> system("pause"); <BR/>}Maxhttps://www.blogger.com/profile/01355936003893734726noreply@blogger.comtag:blogger.com,1999:blog-11003646.post-1121425749909299832005-07-15T19:09:00.000+08:002005-07-15T19:09:00.000+08:00在printf( ) 內控制列印區的格式符號.除了可以配合列印變數區的變數使用外也可以加上修飾字或...在printf( ) 內控制列印區的格式符號.除了可以配合列印變數區的變數使用外也可以加上修飾字或是調整對齊方向<BR/>以下是一個hello.c的內容<BR/><BR/>main()<BR/>{<BR/> int i;<BR/> <BR/> i=1247;<BR/> printf("*%d*\n",i); // 依實際位數顯示 <BR/> printf("*%3d*\n",i); // 總寬度太小還是依照實際位數顯示 <BR/> printf("*%6d*\n",i); // 總寬度6個字<BR/> printf("*%-6d*\n",i); // 負號代表向左靠齊 <BR/> <BR/> printf("%06d\n",i); // 前方空白的部分補0顯示 <BR/> printf("%*d\n",6,i); // %d中的*號表示由後面的參數提供總寬度 <BR/> <BR/> int w=6;<BR/> printf("%0*d\n",w,i); // 前方空白補0且寬度由參數指定 <BR/> <BR/> system("pause"); <BR/>}Maxhttps://www.blogger.com/profile/01355936003893734726noreply@blogger.com