结构体--成绩统计
时间: 1ms 内存:128M
描述:
建立一个简单的学生信息表,包括:姓名、性别、年龄及一门课程的成绩,统计输出学生的平均成绩和不及格同学姓名和不及格人数。
根据给出的代码实现函数total,只需提交该函数。#include<iostream>
#include<iomanip>
using namespace std;
struct student
{
char name[20];
char sex;
int age;
float score;
} ;void input(struct student stud[],int n)
{
int i;
for(i=0; i<n; i++)
{
cin>>stud[i].name; //输入姓名
cin.get();
cin>>stud[i].sex; //输入性别
cin>>stud[i].age; //输入年龄
cin>>stud[i].score; //输入成绩
}
}int main()
{
struct student stud[100];
int n;
cin>>n;
input(stud,n); //输入n个学生的信息
total(stud,n); //统计并输出平均成绩和不及格同学姓名和不及格人数
return 0;
}
输入:
n 和 n个学生的姓名,性别,年龄,成绩
输出:
学生的平均成绩和不及格同学姓名和不及格人数。
示例输入:
3
zhangsan M 20 80
lisi F 19 59
wangwu F 20 100
示例输出:
lisi不及格
平均成绩为:79.7
不及格人数为:1
提示:
参考答案(内存最优[0]):
#include<iostream>
#include<iomanip>
using namespace std;
struct student
{
char name[20];
char sex;
int age;
float score;
} ;
void input(struct student stud[],int n)
{
int i;
for(i=0; i<n; i++)
{
cin>>stud[i].name; //输入姓名
cin.get();
cin>>stud[i].sex; //输入性别
cin>>stud[i].age; //输入年龄
cin>>stud[i].score; //输入成绩
}
}
void total(struct student stud[],int n)
{
int i,q=0;
float m=0,t;
for(i=0;i<n;i++)
{
if(stud[i].score<60)
{
cout<<stud[i].name<<"不及格"<<endl;
q++;
}
}
for(i=0;i<n;i++)
{
m+=stud[i].score;
}
t=m/n;
cout<<"平均成绩为:"<<setiosflags(ios::fixed)<<setprecision(1)<<t<<endl;
cout<<"不及格人数为:"<<q<<endl;
}
int main()
{
struct student stud[100];
int n;
cin>>n;
input(stud,n); //输入n个学生的信息
total(stud,n); //统计并输出平均成绩和不及格同学姓名和不及格人数
return 0;
}
参考答案(时间最优[0]):
#include<iostream>
#include<iomanip>
using namespace std;
struct student
{
char name[20];
char sex;
int age;
float score;
} ;
void input(struct student stud[],int n)
{
int i;
for(i=0; i<n; i++)
{
cin>>stud[i].name; //输入姓名
cin.get();
cin>>stud[i].sex; //输入性别
cin>>stud[i].age; //输入年龄
cin>>stud[i].score; //输入成绩
}
}
void total(struct student stud[],int n)
{
int i,cnt=0;
float ave,sum=0.0;
for(i=0; i<n; i++)
{
sum+=stud[i].score;
if(stud[i].score<60)
{
cout<<stud[i].name<<"不及格"<<endl ;
cnt++;
}
}
ave=sum/n;
cout<<setiosflags(ios::fixed)<<setprecision(1);
cout<<"平均成绩为:"<<ave<<endl
<<"不及格人数为:"<<cnt<<endl;
}
int main()
{
struct student stud[100];
int n;
cin>>n;
input(stud,n); //输入n个学生的信息
total(stud,n); //统计并输出平均成绩和不及格同学姓名和不及格人数
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。