演算法競賽入門經典(第二版)P27 P34

2021-09-12 12:53:19 字數 1333 閱讀 2159

輸入一些整數,求出他們的最小值,最大值和平均值(保留3位小數)。輸入保證這些數都不是超過1000的整數

#includeint main()

printf("%d %d %.3f\n",min,max,(double)s/n);

return 0 ;

}

這個程式在ide上執行了,min和s(平均值)都是正確的,但是max是錯誤的

書上給的解決方法是:

在使用前賦給他乙個初值、由於min儲存的是最小值,所以min就要賦給其乙個極大值

max儲存的是乙個最大值,所以max應該賦給乙個極小值

方法有二

定義乙個很大的常數, 如inf= 1000000000,然後讓max= -inf,min= inf

先讀取第乙個整數x,然後令max= min = x

介紹輸入輸出的方法:管道(windows下的echo 輸入| 程式名 linux下的echo| ./程式名)檔案(把輸入資料放在檔案中,輸出資料也放在檔案中)

#define local

#include #define inf 10000000000

int main()

printf("%d %d %.3f\n", min, max, (double)s/n );

return 0;}/*

in283

5173

6out

1410065408 -1410065408 -1.#io

??????***%……¥%@!!#¥!#

看都看不懂1410065408什麼意思??????

這個是書上寫的重定向版本,但是它輸入的是正常的數字,輸出的卻不知道是什麼玩意兒……

#include#define inf 100000000

int main()

fprintf(fout,"%d %d %.3f\n", min, max, (double)s/n);

fclose(fin);

fclose(fout);

return 0;}/*

in283

5173

6out

100000000 -100000000 -1.#io

??????????????

為什麼啊?

那意思是那個while迴圈等於不存在????

這個是書上的fopen版本

重定向和fopen方法各有優劣,重定向的方法雖然簡單、自然,但是不能同時寫檔案和standard in/out

fopen的寫法稍微複雜點,但是靈活性比較大

演算法競賽入門經典(第二版) 習題

習題2 5 include int main if 10 n b 10 b 5 確定末位四捨五入的情況 printf d 10 n b 1 else printf d 10 n b return 0 注意 要及時輸出,防止n越界 習題2 6 include void result int num,i...

《演算法競賽入門經典(第二版)》 隨筆

c語言中整數值用 d輸出,實數 浮點數 用 f輸出。kiss原則 keep it and stupid 獲得程式執行時間 包括鍵盤輸入時間 include printf 執行時間 2f n double clock clocks per sec 輸入個數未知時 while scanf d x 1 對...

《演算法競賽入門經典(第二版)》習題(二)

習題 2 1 水仙花數 輸出100 999中的所有水仙花數。若3位數abc滿足abc a b c 則稱其為水仙花數。例如 153 1 5 3 所以153是水仙花數。include intmain return0 習題 2 2 韓信點兵 相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三...