第2关:结构体数组的使用
任务描述
本关任务:设有结构体类型声明struct student{int num;char name[12];double score}
;num
,name
,score
分别是学号、姓名、分数。 现有含N
个元素的结构体数组s
,请(1)完成函数scan,使用指针参数p依次读入各个元素的各成员值;(2)完成函数print,使用指针参数p依次输出各个元素的各成员值,成绩保留1位小数。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
测试输入: 1
小明
90.0
2
小白
86.5
3
3 小黑
56.5
预期输出: 1
小明
90.0
2
小白
86.5
3
小黑
56.5
输出用空格分开,不同学生信息用回车分开,最后一次输出可以有回车。无需重复定义结构体,只需要完成函数即可
开始你的任务吧,祝你成功!
以下是通关代码:
#include<stdio.h>
struct student{
int num;
char name[12];
double score;
};
/****在下面定义函数scan,对结构数组初始化******/
void scan(struct student *p,int n )
{
/********** Begin **********/
int i=0;
for(;i<n;i++)
{
scanf("%d %s %lf",&(p+i)->num,(p+i)->name,&(p+i)->score);
}
/********** End **********/
}
/****在下面定义函数print,依次输出结构数组的各成员值******/
void print(struct student *p,int n )
{
/********** Begin **********/
int i=0;
for(;i<n;i++)
{
printf("%d %s %.1f\n",(p+i)->num,(p+i)->name,(p+i)->score);
/********** End **********/
}
}