解题思路:

自定义数据类型将不同类型数据组和在一起形成一个新的数据类型Student,然后在主函数中定义一个该类型的数组变量,根据题目要求,主要功能需要自定义函数来实现,所以定义函数input来输入学生的各种信息,代码如下:

void input(Student student[],int N)
{
    int i;
    for(i=0;i<N;i++)
    {
        cin>>student[i].Id;
        cin>>student[i].Name;
        cin>>student[i].Ane_score;
        cin>>student[i].Two_score;
        cin>>student[i].Three_score;
    }
}


定义函数print来输出学生的信息,代码如下:

void print(Student student[],int N)
{
    int i;
    for(i=0;i<N;i++)
    {
        cout<<student[i].Id<<","
            <<student[i].Name<<","
            <<student[i].Ane_score<<","
            <<student[i].Two_score<<","
            <<student[i].Three_score<<endl;
    }
}


然后在主函数中调用这两个函数即可得到结果,在传递函数参数时没有使用指针是因为用数组名做函数实参时,不是把数组元素的值传递给了形参,而是把实参数组首元素的地址传给了形参数组,这样的话,形参数组和实参数组就共同使用同一内存空间,当形参数组中元素的值发生改变时,实参数组的值也随之改变。所以不需要使用指针。



参考代码:

#include<iostream>
#include<string>
using namespace std;
//创建学生结构体
struct Student
{
    string Id;
    string Name;
    int Ane_score;
    int Two_score;
    int Three_score;
};
//用于输入学生数据
void input(Student student[],int N)
{
    int i;
    for(i=0;i<N;i++)
    {
        cin>>student[i].Id;
        cin>>student[i].Name;
        cin>>student[i].Ane_score;
        cin>>student[i].Two_score;
        cin>>student[i].Three_score;
    }
}
//用于输出学生的数据
void print(Student student[],int N)
{
    int i;
    for(i=0;i<N;i++)
    {
        cout<<student[i].Id<<","
            <<student[i].Name<<","
            <<student[i].Ane_score<<","
            <<student[i].Two_score<<","
            <<student[i].Three_score<<endl;
    }
}
int main()
{
    int N;
    cin>>N;
    Student student[N];
    input(student,N);
    print(student,N);
    return 0;
}


点赞(0)
 

0.0分

6 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论