最近被这个C++的结构体搞疯了,明明非常简单的。就是按输入分类输出的入门题,求解答谢谢

#include<iostream>

using namespace std;

struct Tu

{

char shape;

double x0, y0, r;

double x1, y1, x2, y2;

}tu[500];

int main()

{

char v;

int n = 0, s = 0;

while (cin >> v)

{

if (v == '*')

break;

if (v == 'c')

{

cin >> tu[n].x0 >> tu[n].y0 >> tu[n].r;

tu[n++].shape = v;

continue;

}

if (v == 'r')

{

cin >> tu[n].x1 >> tu[n].y1 >> tu[n].x2 >> tu[n].y2;

tu[n++].shape= v;

}

}

for (int i = 0; i < n; i++)

{

if (tu[i].shape== 'r')

cout << tu[i].shape <<" "<< tu[n].x1<<" " << tu[n].y1<<" " << tu[n].x2<<" " << tu[n].y2 << endl;

if (tu[i].shape == 'c')

cout << tu[i].shape<<" " << tu[n].x0 <<" "<< tu[n].y0<<" " <<tu[n].r<<endl;

}

return 0;

}


把酒定乾坤
浏览 1275回答 1
1回答

onemoo

提问时可以把问题写得更明确些,比如为什么你觉得有问题? 你预期是什么样的结果?看起来这代码大概是要依据输入r或c来存储矩形和圆形的信息。 是不是最后输出的信息都是0?在最后的for循环中,你根据shape进行输出时误把索引写成了 n,应该是 i 才对。还有,你定义了一个s变量,但并没有使用。
打开App,查看更多内容
随时随地看视频慕课网APP