题目相关
题目描述
现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。 编写一个函数input,用来输入一个学生的数据记录。 编写一个函数print,打印一个学生的数据记录。 在主函数调用这两个函数,读取N条记录输入,再按要求输出。 N<100
输入
学生数量N占一行 每个学生的学号、姓名、三科成绩占一行,空格分开。
输出
每个学生的学号、姓名、三科成绩占一行,逗号分开。
解题
分析
读完题目之后,结合输入、输出要求,可显而易见地发现这是考察自定义函数以及结构体的一道题。
根据学生的相关信息,可定义对应的结构体类型
typedef struct node{
char stuNumber[15];
char stuName[15];
int ch;
int ma;
int en;
}node;
可先将主题框架构造好,先假设已存在input和output函数直接进行使用,再去思考具体的实现。在假设函数时可以考虑一下它的参数,从这个函数会对什么样的数据进行处理出发进行思考,会更容易些。本题输入、输出和学生相关信息与学生人数有关,所以参数暂定为人数与学生信息。
int main()
{
int n;
node tmp;
cin>>n;
input(n,stu);// 输入数据
print(n,stu);//输出数据
return 0;
}
完成整体后,再去实现具体函数细节。
void input(int n,node stu[])
{
for(int i=1;i<=n;i++)
{
cin>>stu[i].stuNumber>>stu[i].stuName;
cin>>stu[i].ch>>stu[i].ma>>stu[i].en;
}
}
void print(int n,node stu[])
{
for(int i=1;i<=n;i++)
{
cout<<stu[i].stuNumber<<","<<stu[i].stuName<<","<<stu[i].ch<<","<<stu[i].ma<<","<<stu[i].en<<endl;
}
}
完整实现
#include <iostream>
using namespace std;
typedef struct node{
char stuNumber[15];
char stuName[15];
int ch;
int ma;
int en;
}node;
node stu[105]={0};
void input(int n,node stu[])
{
for(int i=1;i<=n;i++)
{
cin>>stu[i].stuNumber>>stu[i].stuName;
cin>>stu[i].ch>>stu[i].ma>>stu[i].en;
}
}
void print(int n,node stu[])
{
for(int i=1;i<=n;i++)
{
cout<<stu[i].stuNumber<<","<<stu[i].stuName<<","<<stu[i].ch<<","<<stu[i].ma<<","<<stu[i].en<<endl;
}
}
int main()
{
int n;
node tmp;
cin>>n;
input(n,stu);
print(n,stu);
return 0;
}
题目不是很难,主要考察对基础知识点的掌握。
公众号:咸鱼爱学习
本文由博客一文多发平台 OpenWrite 发布!
网友评论