#include<iostream> int fun(int n) { int I,j,k,m; m = n; (1) for(i-1;i < 4;i++) { (2) m = (m - j) / 10; k = k + j * j * j; } if(k == n)(3) else return(0); } void main(){ int I; for(i = 100;i < 1000;i++){ if((4) == 1) cout << i << "is ok!" << endl; } }
时间: 2023-11-28 21:47:24 浏览: 61
这段代码有一些错误,需要进行修改。
1. 在第一行应该加上命名空间using namespace std;
2. 函数fun中没有返回值,需要在函数头中声明返回类型int。
3. 第1个for循环中的变量i应该是从1开始而非0,否则会导致数组越界。
4. 第1个for循环中的变量j应该是从100开始而非1,否则会导致k的值计算错误。
5. 在第1个for循环中,应该将变量k和j初始化为0。
6. 在函数fun中,应该在if语句中加上return 1,表示满足条件。
7. 在main函数中,第4个if语句应该调用函数fun来判断是否符合条件。
下面是修改后的代码:
```c++
#include<iostream>
using namespace std;
int fun(int n) {
int i,j,k,m;
m = n;
k = j = 0;
for(i=1;i < 4;i++) {
j = m % 10;
m = (m - j) / 10;
k = k + j * j * j;
}
if(k == n) return 1;
else return 0;
}
int main(){
int i;
for(i = 100;i < 1000;i++){
if(fun(i) == 1)
cout << i << " is ok!" << endl;
}
return 0;
}
```
阅读全文