#include <tchar.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int a = (1024^3)-(639^3)-(385^3);
short max = 0;
cout<< " Prints 0 if no answer." << endl;
for(int iii = 100; iii < 1000; iii++)
{
if(a % iii = 0)
{
max = iii;
}
}
cout<< " " << max;
cin.clear(); cin.ignore(); cin.get();
return 0;
}
只是尝试编写一个简单的程序,所以我不需要计算,编译器会为第14行返回C2106错误。
答案 0 :(得分:3)
if (a % iii = 0)
这是一项无效的作业。如果您想进行比较,请使用比较运算符==
。
if (a % iii == 0)
此外,在C ++中没有使用^
进行取幂。这实际上是按位xor
运算符。要进行指定,请使用std::pow
标题中的<cmath>
。
#include <cmath>
int main()
{
int a = std::pow(1024, 3) - std::pow(639, 3) - std::pow(385, 3);
}
答案 1 :(得分:1)
应该==进行比较
if((a % iii) == 0)
答案 2 :(得分:1)
您正在使用赋值运算符=
而不是等于运算符==
:
if(a % iii = 0)
这应该是:
if( a % iii == 0)
a % iii
的结果是临时的,在原始代码中,您尝试将0
分配给该临时代码。除了那个错误之外,看起来你正试图通过这里的力量来筹集一些数字:
int a = (1024^3)-(639^3)-(385^3);
^
运算符实际上是按位xor
,您需要cmath
标题中的pow
:
int a = std::pow(1024,3)-std::pow(639,3)-std::pow(385,3);
我也会避免using namespace std
。