C语言解释STUDENT *data, int *len)

[复制链接]
查看11 | 回复3 | 2016-10-27 19:42:28 | 显示全部楼层 |阅读模式
#include
#include
#include
#define MAXN 35
#define MAX_NAME 250
typedef struct student/*学生信息*/
{
        intno;
        char name[MAX_NAME];
        doubleenglish;
        doublemath;
        doubleProgramming;
        doublemark_ave;
        doublemark_tot;
} STUDENT;
/*输入信息程序*/
void input(STUDENT *data, int *len)
{
        int no;
        putchar('\n');
        printf("%s\n", "请输入新的记录,如果需要退出当前菜单请输入0.");
        printf("%s\n", "格式:");

printf("%s\n", "学号");
        printf("%s\n", "姓名 英语 数学 C语言");
        putchar('\n');
        scanf("%d", &no);
        while(no != 0)
        {
                data[*len].no= no;
                scanf("%s %lf %lf %lf", &data[*len].name, &data[*len].english, &data[*len].math,&data[*len].Programming);
                data[*len].mark_ave=(data[*len].english+data[*len].math+data[*len].Programming)/3.0;       
       
data[*len].mark_tot=data[*len].english+data[*len].math+data[*len].Programming;
                (*len)++;
                scanf("%d", &no);
        }       
}
高手解释下这里的结构体还有就是STUDENT *data, int *len)

回复

使用道具 举报

千问 | 2016-10-27 19:42:28 | 显示全部楼层
楼主你好。我理解的是,你的问题有两个,1:解释结构体2:解释input(STUDENT *data, int *len)这个函数现在我分别对两个问题进行回答:答1:typedef struct student/*学生信息*/{intno;char name[MAX_NAME];doubleenglish;doublemath;doubleProgramming;doublemark_ave;doublemark_tot;} STUDENT;该结构体中定义了整形变量 int no,表示学生学号;定义了字符数组 char name[MAX_NAME],表示...
回复

使用道具 举报

千问 | 2016-10-27 19:42:28 | 显示全部楼层
STUDENT *data: 结构体数组(每个元素都是一个结构体),data传递的是首地址int *len: 返回的是结构体数组的维数-------在input函数中 data[*len]表示第len维结构体元素。--------main中可以这么调用。{int len = 0;STUDENT arr[20];input(...
回复

使用道具 举报

千问 | 2016-10-27 19:42:28 | 显示全部楼层
STUDENT *data: 结构体指针(每个元素都是一个结构体),指针可以当数组用,data传递的是首地址,int *len: 整型指针,返回的是结构体数据的个数。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行