解题思路: 定义结构体数组,利用for循环多次通过自定义函数填好结构体相应值
注意事项:1. 选择合适的结构体变量,比如题目示例中的学号是char型而不是int型,所以使用char数组放置学号;

2.在本题中我选择了地址传递的方式进行对参数值的传递,其基本形式为:调用:input(&x);定义:void input(int *x);在地址传递方法中&与*配套使用;

3.数组名代表地址,不需要加取地址符&

参考代码:

#include<stdio.h>
struct student
{
    char id[10];
    char name[20];
    int score[3];
};
void input(struct student *s)
{
    scanf("%s %s %d %d %d",s->id,s->name,&(s->score[0]),&(s->score[1]),&(s->score[2]));
}
void print(struct student *s)
{
    printf("%s,%s,%d,%d,%d\n",s->id,s->name,s->score[0],s->score[1],s->score[2]);
}
void main()
{
    int i,n;
    scanf("%d",&n);
    struct student stu[n];
    for(i = 0; i < n; i++)
        input(&stu[i]);
    for(i = 0; i < n; i++)
        print(&stu[i]);
}

 

 

0.0分

0 人评分

  评论区

  • «
  • »