错误C2062:输入'int'意外,无法解决此错误

时间:2012-03-05 16:51:51

标签: c++

运行程序时出现以下错误

(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

3 个答案:

答案 0 :(得分:3)

\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]);

因为Lint,但dist()返回double

Lminmax更改为double,然后使用:

double min = std::numeric_limits<double>::max();

答案 1 :(得分:2)

您的警告来自此处L += dist(R[i], R[i+1]);
L是一个整数,你添加一个双 错误来自此行int min = int.MaxValue;,是的,这不是有效的c ++ 我想你想要int min = std::numeric_limits<int>::max();
最后一个警告是`printf(“\ max”);

\m不是已知的转义序列..

答案 2 :(得分:2)

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”