机智如我么么哒 发表于 2019-10-10 00:20:15

有大佬吗,结构体变量有的地方没看懂

#include<stdio.h>
# define N 3
struct student
{
        int num;
        char name;
        float score;
        float aver;
} ;
int main()
{
        void input (struct student str[]);                                                                                                                              //这里str[]是个数组吗?如果是为什么不用个下标赋值就能运行
        struct student max(struct student str[]);
        struct student str,*p=str;
        input(p);
        print(max(p));
        return 0;
}
void input (struct student str[])
{
        int i;
        printf("请输入各类学生的信息;学号、姓名、3门课程;\n");
        for(i=0;i<N;i++)
        {
                scanf("%d%s%f%f%f",&str.num,&str.name,&str.score,&str.score,&str.score);
                str.aver=(str.score+str.score+str.score)/3;
       }
       
}
struct student max(struct student str[])
{
        int i,m=0;
        for(i=0;i<N;i++)
        {
                if(str.aver>str.aver)m=i;
       }
       return (str);
}
void print(struct student str)
{
        printf("\n成绩最高的学生是\n");
        printf("学号%d\n姓名%s\n三门课成绩%5.1f,%5.1f,%5.1f\n平均成绩%6.2f\n",
       str.num,str.name,str.score,str.score,str.score,str.aver);
}

机智如我么么哒 发表于 2019-10-10 00:21:01

就注释哪里没看懂

jackz007 发表于 2019-10-10 00:31:49

# define N 3
struct student
{
      int num;
      char name;
      float score;
      float aver;
} ;
int main()
{
. . . . . .   
      struct student str,*p=str;
. . . . . .
}
void input (struct student str[])

      很显然,str 是 1 个拥有 3 个 struct student 结构体类型元素的一维数组。

机智如我么么哒 发表于 2019-10-10 10:26:19

jackz007 发表于 2019-10-10 00:31
# define N 3
struct student
{


意思是在函数声明里系统是把他看做指针吗?

jackz007 发表于 2019-10-10 10:34:40

    一维数组自然等同于结构体指针了。
页: [1]
查看完整版本: 有大佬吗,结构体变量有的地方没看懂