Re: [問題] C 取相同最大值

看板C_and_CPP作者 (~~~~~~~~~~)時間15年前 (2010/03/23 06:42), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串4/4 (看更多)
int num[5] = {1, 3, 5, 4, 5}; int max = num[0]; int count = 1; int i; for (i = 1; i < 5; i++) { if (num[i] > max) { max = num[i]; count = 1; } else if (num[i] == max) count++; } printf("max %d count %d\n", max, count); 一個 for ?? 改成這樣就不需要 limits.h 嘍 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.15.74

03/23 14:47, , 1F
1 << 31 是故意讓他溢位的嗎
03/23 14:47, 1F

03/23 14:50, , 2F
不是故意溢位 你要了解 int32 的負極大值是多少就懂了
03/23 14:50, 2F

03/23 15:24, , 3F
好習慣請使用 limits.h 的 INT_MIN, 不然其他人容易 confuse
03/23 15:24, 3F

03/23 15:25, , 4F
如果將來 INT_MIN 不是 1 << 31, 那程式也得重寫了
03/23 15:25, 4F
※ 編輯: visor 來自: 118.169.15.74 (03/23 15:34)
文章代碼(AID): #1Bg6BoEI (C_and_CPP)
文章代碼(AID): #1Bg6BoEI (C_and_CPP)