C++输入数据重复

题为收集学生信息,下面是我写的代码#include<iostream>#include<cstring>#include<cmath>usingnamespacestd;... 题为收集学生信息,下面是我写的代码
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;

struct person
{char name[10];
int num;
int age;
float score[3],s,p;
}a[45];

main()
{
int i,k,m,n;
cout<<"请输入班级人数"<<endl;
cin>>m;
person x;

cout<<"从键盘输入具有学生的4个信息"<<endl;
for (i=0;i<m;i++)
{cin>>x.name;
cin>>x.num;
cin>>x.age;
for (n=0;n<3;n++) cin>>x.score[n];
a[i]=x;
}
cout<<"具有的信息"<<endl;
for (i=0;i<m;i++)
{cout<<a[i].name<<" ";
cout<<a[i].num;
cout<<a[i].age<<" ";
for (n=0;n<3;n++) cout<<x.score[n]<<" ";
a[i].s=x.score[0]+x.score[1]+x.score[2];
a[i].p=a[i].s/3;
cout<<a[i].s<<" "<<a[i].p<<endl;
}

}
运行后发现输出的name num age都正常,但全部score包括平均分和总分显示的都是第一个人的信息。
请问错在哪里了?
展开
 我来答
百度网友52aeb54
2010-06-10 · TA获得超过2996个赞
知道小有建树答主
回答量:1261
采纳率:0%
帮助的人:1162万
展开全部
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;

struct person
{char name[10];
int num;
int age;
float score[3],s,p;
}a[45];

main()
{
int i,k,m,n;
cout<<"请输入班级人数"<<endl;
cin>>m;
person x;

cout<<"从键盘输入具有学生的4个信息"<<endl;
for (i=0;i<m;i++)
{cin>>x.name;
cin>>x.num;
cin>>x.age;
cout<<"输入3个成绩"<<endl;
for (n=0;n<3;n++) cin>>x.score[n];
a[i]=x;
}
cout<<"具有的信息"<<endl;
for (i=0;i<m;i++)
{cout<<a[i].name<<" ";
cout<<a[i].num;
cout<<a[i].age<<" ";
for (n=0;n<3;n++) cout<<a[i].score[n]<<" ";
a[i].s+=a[i].score[n];
a[i].p=a[i].s/3;
cout<<a[i].s<<" "<<a[i].p<<endl;
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式