有关于struct简化的求教

jty344 2016-10-27 08:19:22
今天老师布置了作业,让我们用struct来对5个人的姓名,以及三科分数进行储存和求平均分运算。
我大概写了下把5个人的各方面数据付给person1,person2,person3......
然后计算平均分变成了比人力运算还要慢的多的打代码。

rank person1={"Tom Jones",80,60,70};
rank person2={"Mary Jane",30,70,50};
rank person3={"Hank Moore", 70,80,60};
rank person4={"Steve Jobs", 66,77,88};
rank person5={"John Lewis", 22,33,44};

person1.average=(person1.math+person1.electronics+person1.circuit)/3;
person2.average=(person2.math+person2.electronics+person2.circuit)/3;
person3.average=(person3.math+person3.electronics+person3.circuit)/3;
person4.average=(person4.math+person4.electronics+person4.circuit)/3;
person5.average=(person5.math+person5.electronics+person5.circuit)/3;

实在觉得无法发挥出利用编程提高工作速度的优势。
我有尝试能不能用person1[1]来指代math,但好像不可以。。
那请问有什么方法可以提高struct所定义的结构体内容的书写速度?(类似数组?【才疏学浅】)

谢谢!!!
...全文
142 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
starytx 2016-10-28
  • 打赏
  • 举报
回复
看来你需要的是结构体数组
AlbertS 2016-10-28
  • 打赏
  • 举报
回复
声明称数组,循环计算
hongwenjun 2016-10-28
  • 打赏
  • 举报
回复
那就 excel 吧 写程序是为了相同场景的重复利用 和 修改后灵活应用 一个数据结构, 一个容器, 以数据格式读取 放到容器 输入使用文本文件
jty344 2016-10-28
  • 打赏
  • 举报
回复
@qq_36409192 @paschen 這是我最後的做法。在百度上找的struct的解析。 抱歉,我比較笨,在做完之後才理解了你們説的話。謝謝!! struct rank { char name[20]; int score[6]; }temp; rank person[]={ {"Tom Jones",80,60,70}, {"Mary Jane",30,70,50}, {"Hank Moore", 70,80,60}, {"Steve Jobs", 66,77,88}, {"John Lewis", 22,33,44}};
jty344 2016-10-28
  • 打赏
  • 举报
回复
@hongwenjun 老師作業,要求C++。不過已經做出來了,謝謝!!
  • 打赏
  • 举报
回复
结构体初始化成数组形式 再写个函数来算平均值那些就可以了 函数参数为结构体数组 里面用for循环计算
Faded0104 2016-10-27
  • 打赏
  • 举报
回复
你可以在struct里或者在struct的外面定义一个求average的函数,然后每次调用函数就好。 至于输入数据你可以写一个input的函数,函数体内用循环输入成绩。
gh_99 2016-10-27
  • 打赏
  • 举报
回复
struct rank{
char name[20];
int a[2];
float ave;
int num;
int failed;
}person[10];
person[0]={"Tom Jones",80,60,70};
jty344 2016-10-27
  • 打赏
  • 举报
回复
@qq_36409192

这样会提示出错
paschen 2016-10-27
  • 打赏
  • 举报
回复
person 声明成数组,然后放求平均值部分放在平均值放在循环里 for (i = 0; i < 5; ++i) person[i].average=(person[i].math+person[i].electronics+person[i].circuit)/3;
ck2333 2016-10-27
  • 打赏
  • 举报
回复
由于用的是手机,所以只能给楼主说下思路。 1.定义一个结构data,里面包含姓名以及各科成绩。 2.主函数中,先声明一下data a[5]和int b[5]。 3.利用循环,对每个人的信息进行输入(把每个人的信息存入结构数组中)。 4.利用循环,对应的求出每个人的平均成绩。 不一定是最好的方法,但是也是一个不错的选择。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧