结构体--成绩统计

结构体--成绩统计

时间: 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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注