有大佬吗,结构体变量有的地方没看懂
#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);
} 就注释哪里没看懂 # 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 结构体类型元素的一维数组。 jackz007 发表于 2019-10-10 00:31
# define N 3
struct student
{
意思是在函数声明里系统是把他看做指针吗? 一维数组自然等同于结构体指针了。
页:
[1]