#include<iostream.h> #include<fstream.h> class DIF { int low,high; int a[100]; int count; public: DIF(int lw=10,int hi=1000) { low=lw; high=hi; int isdiff(int x) { //********************************************* int a,b,c; a=x%10; b=x/10%10; c=x/100; if(x==a*a*a+b*b*b+c*c*c) { return 1; } else return 0; //************************************************ } } void process() { count=0; for(int x=low;x<=high;x++) { if(isdiff(x)) a[count++]=x; } } void show() { for(int i=0;i<count;i++) count<<a[i]<<'\t'; count<<'\n'; count<<"count="<<count; } } void main() { DIF v(100,999); v.process(); v.show(); return 0; }哪里有错误
时间: 2023-07-23 15:03:12 浏览: 104
#include_iostream.h_
4星 · 用户满意度95%
有几个错误需要修正:
1. 在 `#include<iostream.h>` 和 `#include<fstream.h>` 中使用了 `.h` 的扩展名,这是过时的写法。正确的写法应该是 `#include<iostream>` 和 `#include<fstream>`。
2. `isdiff` 函数应该被定义在类的外部,而不是在构造函数内部。将 `isdiff` 函数移出构造函数并放在类的外部。
3. 在 `show` 函数中,你使用了 `count` 来输出结果,但实际上应该使用 `cout` 来输出。
4. `main` 函数的返回类型应为 `int`,而不是 `void`。
修正后的代码如下所示:
```cpp
#include<iostream>
#include<fstream>
using namespace std;
class DIF
{
int low, high;
int a[100];
int count;
public:
DIF(int lw=10, int hi=1000)
{
low = lw;
high = hi;
}
int isdiff(int x)
{
int a, b, c;
a = x % 10;
b = x / 10 % 10;
c = x / 100;
if (x == a * a * a + b * b * b + c * c * c)
{
return 1;
}
else
{
return 0;
}
}
void process()
{
count = 0;
for (int x = low; x <= high; x++)
{
if (isdiff(x))
a[count++] = x;
}
}
void show()
{
for (int i = 0; i < count; i++)
cout << a[i] << '\t';
cout << '\n';
cout << "count=" << count;
}
};
int main()
{
DIF v(100, 999);
v.process();
v.show();
return 0;
}
```
修复了以上错误后,代码应该可以正常编译和运行了。
阅读全文