输出下列程序运行结果 #include using namespace std; class Demo{ public: Demo(){data=1;} Demo(int d):data(d){} void setDama(int d){data=d;} int getData(){return data;} private :int data; }; int main{Demo array[6]={10,20,30},*pa=arrat+5; pa->setData(pa->getData()+15); while(pa>array){ int d=(pa--)->getData(); pa->setData(d+pa->getData()); cout<getData()<<".";}return 0; }
时间: 2023-11-27 19:49:45 浏览: 162
这段程序有一些语法错误:
1. `main` 函数应该有小括号 `()`。
2. `Demo` 类定义中的 `setDama` 应该是 `setData`。
3. `array` 应该是 `array`。
修改后的程序如下:
```c++
#include <iostream>
using namespace std;
class Demo{
public:
Demo(){data=1;}
Demo(int d):data(d){}
void setData(int d){data=d;}
int getData(){return data;}
private:
int data;
};
int main(){
Demo array[6] = {10, 20, 30};
Demo* pa = array + 5;
pa->setData(pa->getData() + 15);
while(pa > array){
int d = (pa--)->getData();
pa->setData(d + pa->getData());
cout << pa->getData() << ".";
}
return 0;
}
```
运行结果为:
```
50.40.32.21.11.
```
相关问题
输出下列程序运行结果 #include using namespace std; class Demo{ public: Demo(){data=1;} Demo(int d):data(d){} void setDama(int d){data=d;} int getData(){return data;} private :int data; }; int main{Demo array[6]={10,20,30},*pa=arrat+5; pa->setData(pa->getData()+15); while(pa>array){ int d=(pa--)->getData(); pa->setData(d+pa->getData()); cout<getData()<<".";}return 0; }
该程序存在多处语法错误,无法直接运行。下面是修正后的程序:
```
#include <iostream>
using namespace std;
class Demo {
public:
Demo() { data = 1; }
Demo(int d) : data(d) {}
void setData(int d) { data = d; }
int getData() { return data; }
private:
int data;
};
int main() {
Demo array[6] = { 10, 20, 30 };
Demo *pa = array + 5;
pa->setData(pa->getData() + 15);
while (pa > array) {
int d = (--pa)->getData();
pa->setData(d + pa->getData());
cout << pa->getData() << ".";
}
return 0;
}
```
运行结果为:
```
45.42.22.11.
```
解释如下:
1. 首先创建了一个 `Demo` 类的数组 `array`,其中分别存储了 `10`、`20`、`30` 三个数值。
2. 创建了一个指针 `pa`,初始指向 `array` 数组的最后一个元素。由于数组下标从 `0` 开始计数,因此 `array+5` 实际上是指向了数组的第 `6` 个元素。
3. 修改 `pa` 所指向的元素的值,将其加上 `15`,即 `pa->setData(pa->getData() + 15)`,这样数组中的值变为 `10, 20, 30, 0, 0, 45`。
4. 进入循环,从最后一个元素开始向前遍历数组。首先将指针 `pa` 减一,然后获取其所指向的元素的值 `d`。
5. 将 `d` 加上 `pa` 所指向的元素的值,并将结果存储到 `pa` 所指向的元素中,即 `pa->setData(d + pa->getData())`。这样数组中的值变为 `10, 20, 30, 0, 45, 45`。
6. 输出 `pa` 所指向的元素的值,并在后面加上一个点号,即 `cout << pa->getData() << "."`。
7. 判断指针 `pa` 是否已经指向了数组的第一个元素,如果是则退出循环,否则回到第 4 步继续遍历。
8. 整个程序结束,返回 `0`。
#include using namespace std; class Demo { public: Demo({data=1;) Demo(int d):data(d){} void setData(int d){data=d;} int getData({return data;} 1. private: 2. int data; :( int maino
你的代码存在一些语法错误。我帮你修改了一下:
```
#include <iostream>
using namespace std;
class Demo {
public:
Demo() : data(1) {}
Demo(int d) : data(d) {}
void setData(int d) { data = d; }
int getData() { return data; }
private:
int data;
};
int main() {
Demo d1;
Demo d2(2);
cout << "d1 data: " << d1.getData() << endl;
cout << "d2 data: " << d2.getData() << endl;
d1.setData(3);
cout << "d1 data after set: " << d1.getData() << endl;
return 0;
}
```
这段代码定义了一个名为`Demo`的类,该类有两个构造函数和一个成员变量`data`,并且提供了两个成员函数`setData`和`getData`用于设置和获取`data`的值。在`main`函数中创建了两个`Demo`对象,并调用了相应的成员函数输出和修改数据。
阅读全文