因为数组是地址。这样做
/
note:your
choice
is
c
ide
/
#include
"stdioh"
static
int
max[5];
void
main()
{
int
va[5][5];
int
peo;
int
sub;
for(peo=0;peo<5;peo++)
{
sub=0;
printf("yingyu:");
scanf("%d",&va[peo][sub]);
sub++;
printf("shuxue:");
scanf("%d",&va[peo][sub]);
sub++;
printf("guoyu:");
scanf("%d",&va[peo][sub]);
sub++;
printf("shehui:");
scanf("%d",&va[peo][sub]);
sub++;
printf("li
ke:");
scanf("%d",&va[peo][sub]);
}
max_of(va);
printf("yingyu:%d\n",max[0]);
printf("shuxue:%d\n",max[1]);
printf("guoyu:%d\n",max[2]);
printf("shehui%d\n",max[3]);
printf("like:%d\n",max[4]);
}
int
max_of(int
vb[5][5])
{
int
k,r;
for(k=0;k<5;k++)
{
max[k]=vb[0][k];
for(r=0;r<5;r++)
{
if(vb[r][k]>max[k])
max[k]=vb[r][k];
}
}
}
应该这样做,输出每一门的最大值
不好意思,刚才错了,我现在把正确的贴上去了
你的那个一位数组应设为全局变量放在程序开始,
然后是数组因为数组就是地址,所以他们不用返回,他们在那个函数中其实是改变的数组内部的值,不是形式参数,故c语言能读出数组中的值
// 方法1,用静态变量进行返回
char SubFunction(void)
{
static char szText[5] = "adfa"; // 用静态空间
//对p进行赋值 *** 作
return szText;
}
void Caller() // 这个函数调用SubFunction
{
TRACE("%s\n", SubFunction);
}
// 方法2,用指针传递
void SubFunction(char pText1, char pText2)
{
// 对pText1, pText2运算
strcpy(pText1, "love");
strcpy(pText2, "you");
return;
}
void Caller() // 这个函数调用SubFunction
{
char szText1[5], szText2[5]; // 当然这里也可以动态分配内存
SubFunction(szText1, szText2); // szText1, szText2就是带回的值
TRACE("%s %s\n", szText1, szText2);
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)