#include<iostream> #include<iomanip> #include<cmath> using namespace std; class point { private: int x,y; public: point(int x,int y):x(x),y(y){} void coutt () { cout << "[" <<x<<","<<y<<"]"<< endl; } }; int main() { int i,n; vector<point> a(2); string x,y; for(i=0;i<100;i++) { getline(cin,x,' '); getline(cin,y); a[i]={x,y} } n=a.size()-1; for(;n>=0;n--) a[n].ccout; return 0; } 有什么错误
时间: 2024-01-14 22:02:02 浏览: 71
#include <iostream> #include<iomanip> using namespace std;九九乘法表
这段代码有几个错误:
1. 在 for 循环中,i 的初始值为 0,但是 a 的大小为 2,所以会出现数组越界的错误。应该将循环条件改为 i<2。
2. 在 for 循环中,输入的 x 和 y 是字符串类型,需要将其转换为整型。应该将 a[i]={x,y} 改为 a[i]={stoi(x),stoi(y)}。
3. 在输出 point 的时候,应该调用 point 类的 coutt 函数,而不是 ccout。
4. 缺少头文件 vector。
修改后的代码如下:
```c++
#include<iostream>
#include<iomanip>
#include<cmath>
#include<vector>
using namespace std;
class point {
private:
int x,y;
public:
point(int x,int y):x(x),y(y){}
void coutt()
{
cout << "[" <<x<<","<<y<<"]"<< endl;
}
};
int main()
{
int i,n;
vector<point> a(2);
string x,y;
for(i=0;i<2;i++)
{
getline(cin,x,' ');
getline(cin,y);
a[i]={stoi(x),stoi(y)};
}
n=a.size()-1;
for(;n>=0;n--)
{
a[n].coutt();
}
return 0;
}
```
阅读全文