c语言函数中,数组如何return

来源:百度知道 编辑:UC知道 时间:2024/09/22 16:41:03
小弟刚刚学语言,所以很多问题不懂.
题目大概意思是这样的,求5个人5门课程,当中每门的最高分.
最高分,要用函数,max_of来求,然后用,一维数组,把5门的最高分值返回主函数.然后输出.
(下是小弟写的程序,可是提示,
"警告 16: 不可移动的指针(地址常数)转换在 max_of 函数中")
#include "stdio.h"
int max_of(int vb[5][5])
{
int k,r;
int max[5];
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];
}
}

return(max);
}
int main()
{
int va[5][5];
static int max[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:");

数组不用return,数组在函数中改变是改变的实参。
因为数组是地址。这样做
/* Note:Your choice is C IDE */
#include "stdio.h"
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]);