推 latinboy:他的數字範圍超過int上限 改用long long宣告即可 12/15 21:28
推 idicivik:題目有說不會超過 2 的32次方歐 所以你要做大數運算處理 12/15 21:28
推 cplusplus:才2的32次方 不用做大數運算~~ 一般運算就好了~ 12/15 22:07
推 ssagit:latinboy說得對, 只要用 long long int 宣告就行了.... 12/15 23:27
> -------------------------------------------------------------------------- <
作者: bryanliu (自以為是的白痴) 看板: C_and_CPP
標題: Re: [問題] acm10055
時間: Fri Dec 16 01:05:41 2005
C:\Documents and Settings\bryanliu\桌面\acm\10055.c(7) : error C2632: 'long'
followed by 'long' is illegal
現在跑出來這個
= =
為什麼阿
是要INCLUDE別的檔案嗎?
順便問一下LONG LONG INT 的
printf 和 scanf 的%之後要接什麼??
請教各位高手囉~~
※ 引述《bryanliu (自以為是的白痴)》之銘言:
: 很直觀的應該是要相減再絕對質
: 可是一直wrong answer
: 以下是題目
: ******************************************************************************
: Hashmat是一個勇敢的將領,他帶著年輕的士兵從這個城市移動到另一個城市與敵人對抗
: 。在打仗之前他會計算己方與敵方士兵的數目差距,來決定是要開打或不開打。Hashmat
: 的士兵數絕不會比敵人的士兵數大。
: Input
: 每組測試資料1列,有2個整數,代表Hashmat及敵人的士兵數或反之。這些數不會超過232
: 。
: Output
: 對每組測試資料請輸出Hashmat與敵人士兵數目的差(正數)。
: Sample input
: 10 12
: 14 10
: 100 200
: Sample Output
: 2
: 4
: 100
: ******************************************************************************
: 以下是我的code
: #include<stdio.h>
: #include<math.h>
: int main()
: {
: unsigned int a,b;
: while((scanf("%d %d",&a,&b))!= EOF)
: {
: printf("%d\n",abs(a-b));
: }
: return 0;
: }
: 拜託高手幫我看看囉
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.143.223.103
→ ssagit:看看這個網頁的第二段, 是用 %lld 就行了.... 12/16 01:07
→ ssagit:你的錯誤是你的 Compiler 不支援這個型態, 不過你還是可以 12/16 01:08
→ ssagit:用這個型態直接把程式送給 ACM 做 Judge, 因為 ACM 有支援. 12/16 01:08
推 bryanliu:感謝萬分 ^^ 12/16 01:27
→ bryanliu:再問一下 LONG LONG INT 是幾BYTE呢?? 12/16 01:29
推 UNARYvvv:平常用的是 64 bits => 8 bytes 12/16 01:36
→ UNARYvvv:你是用 VC6 嗎? 那先用 __int64 替代用來測試你的程式吧 12/16 01:37
→ UNARYvvv:要送上去的時候再改成 long long 12/16 01:38
→ bryanliu:恩 式VC6 請問什麼時候要用底線的這種表示法呢?? 12/16 01:44
推 bryanliu:LONG不是就可以容納下2^32了媽 為啥要用到兩個 12/16 02:15
→ bryanliu:那再請問 8BYTE 是不是(2^8)^8 這樣去算的阿 12/16 02:17
推 ssagit:unsigned long int 最大到 2^32-1, 但是題目是說士兵最大到 12/16 02:46
→ ssagit:2^32, 所以才要改用 long long int ..... 12/16 02:47
推 rephansu:那個EOF到底是要等於什麼的時候才會離開程式? 12/16 11:21
推 UNARYvvv:應該要改成 while ((scanf(...))==2) 12/16 23:02
→ UNARYvvv:判斷不等於可是有可能等於 1 的 12/16 23:03