解题思路:
自定义数据类型将不同类型数据组和在一起形成一个新的数据类型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分
7 人评分
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:551 |
简洁的代码浏览:1408 |
C二级辅导-计负均正 (C语言代码)浏览:576 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:632 |
C语言训练-斐波纳契数列 (C语言代码)浏览:1165 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:508 |
【密码】 (C语言代码)浏览:333 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:535 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:556 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:560 |