c语言中如何在子函数中调用主体函数的结构数组

#include <stdio.h>
int MaxH(int b);
int MaxG(int c);
int main()
{
int a,maxb,maxc,b,c;
struct{
char name;
int h,g;
}stu[10];
for(a=0;a<10;a++)
{
scanf("%s",&stu[a].name);
scanf("%d",&stu[a].h);
scanf("%d",&stu[a].g);
}
maxb=MaxH(b);
maxc=MaxG(c);
printf("msxh,name=%s,h=%d,g=%d",stu[maxb].name,stu[maxb].h,stu[maxb].g);
printf("msxg,name=%s,h=%d,g=%d",stu[maxc].name,stu[maxc].h,stu[maxc].g);
return 0;
}
int MaxH(int b)
{
int maxh=0;
int x;
for(x=0;x<10;x++)
{
if(stu[x].h>maxh)
{
maxh=stu[x].h;
b=x;
}
}
return b;
}
int MaxG(int c)
{
int maxg=0;
int y;
for(y=0;y<10;y++)
{
if(stu[y].g>maxg)
{
maxg=stu[y].g;
c=y;
}
}
return c;
}

有两种方式:
1.将结构体声明为全局变量
2.将改结构体作为参数传给子函数,这样子函数就可以使用该结构体了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-11
将结构和结构变量声明主函数外面即可,子函数采用结构指针参数引用结构也可以
相似回答