我收到以下錯誤,當我運行我的程序錯誤C2062:類型「詮釋」意外,無力解決這個錯誤
(61): warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data
(63): error C2062: type 'int' unexpected
(69): warning C4129: 'm' : unrecognized character escape sequence
我收到以下錯誤,當我運行我的程序錯誤C2062:類型「詮釋」意外,無力解決這個錯誤
(61): warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data
(63): error C2062: type 'int' unexpected
(69): warning C4129: 'm' : unrecognized character escape sequence
\m
沒有一個公認的轉義字符的原因是:
printf("\max");
更改爲:
printf("max"); // or "cout << "max";" as this is C++.
在字符串文字甲\
用於逃避以下字符,例如\n
。
int
是原始數據類型,不是類實例,所以int.MaxValue;
無效。要取得int
你會用std::numeric_limits<int>::max()
和#include <limits>
,但轉換錯誤是造成最大值:
L += dist(R[i], R[i+1]);
因爲L
是int
但dist()
返回double
。
變化L
,min
和max
鍵入double
及用途:
double min = std::numeric_limits<double>::max();
你的警告是從這裏L += dist(R[i], R[i+1]);
L是一個整數,你皆爲加入了一倍。
錯誤來自於這條線int min = int.MaxValue;
,是的,這是無效的c + +。
我假設你想要int min = std::numeric_limits<int>::max();
最後一個警告是`printf(「\ max」);
\m
不是一個已知的轉義序列..
int min = int.MaxValue;
int max = 0;
if (L > max)
{
max = L;
printf("\max");
}
將其更改爲
int min = numeric_limits<int>::max();
int max = 0;
if (L > max)
{
max = L;
printf("%d\n", max);
}
不要忘記
#include <limits>
,你應該到使用 「iostream」 不是 「cstdio」
除了其他的錯誤,你*應該*已經得到警告,調用'sqrt'沒有聲明。你需要添加'#include'。你還需要弄清楚你的編譯器爲什麼沒有提醒你。 –
2012-03-05 17:10:10
您的代碼的縮進造成難以閱讀。我糾正了這一點。我還爲錯誤和警告消息標記的行添加了評論;這使得讀者能夠更輕鬆地找到相關的產品線,而無需重新計數。 – 2012-03-05 17:10:53