我的代码:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while( t-- ) {
int n, x = 0;
cin >> n;
if(n % 2 == 0)
cout << n/2 <<" "<< n/2 << endl;
else
int min = INT_MAX;
for(int i = 1; i*i <= n; i++) {
if(( n-i) % i == 0) {
int d = (n-i) / i;
if(d <= min) {
min = d;
x = i;
}
}
}
cout << x <<" "<< n-x <<endl;
}
// your code goes here
return 0;
}
该代码给出了一些我未能处理的典型错误。
谁能帮我修一下吗?
C:\Users\HP\Desktop\Code\hello.cpp:21:20:error:类型为'int'
和'''binary'运算符的无效操作数<='21|if(d<=min(|~^~~~~
问题是您在中错过了else
的{}
else
int min=INT_MAX;
for(int i=1;i*i<=n;i++)
因此,int min
的范围仅限于定义它的单行。在if(d<=min)
中,编译器看到的是std::min()
函数模板(这是因为您编写了不推荐使用的using namespace std;
(。