老师平时布置的希冀系统上的作业答案,仅供参考!
【问题描述】
定义全班学生学习成绩的结构体数组,学生结构体类型的数据成员为:姓名、学号、英语、物理、数学和这三门功课的平均成绩。先输入全班成绩,再计算每个学生的平均成绩,最后输出全班成绩表。
【输入形式】
每行输入一个学生数据,分别为学号、姓名、英语、物理、数学,每个数据中间用空格隔开
【输出形式】
每行输出一个学生数据,分别为学号、姓名、英语、物理、数学,平均成绩 每个数据中间用空格隔开。
所有浮点型数据保留两位有效数字输出
提示cout保留两位有效数字的实现:
使用时首先引入头文件
#include<iomanip>
cout<<fixed<<setprecision(2)<<a<<b; //输出a,b的值,并保留两位有效数字
【样例输入】
1 zhngsan 78 78 78
2 lisi 90 91 92
3 wangwu 98 98 98
【样例输出】
1 zhngsan 78.00 78.00 78.00 78.00
2 lisi 90.00 91.00 92.00 91.00
3 wangwu 98.00 98.00 98.00 98.00
【答案说明】
此答案最后保留小数位数输出并未使用cout,而是使用的printf格式输出
【参考答案】
#include<iostream>
using namespace std;
struct student
{
int no;
char name[8];
float yy,wl,sx,ave;
};
void Input(student s[2])
{
for(int i=0;i<3;i++)
{
cin>>s[i].no>>s[i].name>>s[i].yy>>s[i].wl>>s[i].sx;
}
}
void ave (student s[ ])
{
for (int i=0;i<3;i++)
s[i].ave=(s[i].yy+s[i].wl+ s[i].sx)/3;
}
void print(student s[ ])
{
for (int i=0;i<3;i++)
printf("%d %s %.2f %.2f %.2f %.2f\n",s[i].no,s[i].name,s[i].yy,s[i].wl,s[i].sx,s[i].ave);
}
int main ()
{
student stu[3];
Input(stu);
ave (stu);
print(stu);
return 0;
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容