c语言二维数组传址问题

#include"stdio.h"#include"stdlib.h"#include"time.h"voidmax(inta[][6]);voidmain(){inta... #include "stdio.h"
#include "stdlib.h"
#include "time.h"
void max(int a[ ][6]);
void main()
{ int a[5][6],i,j;
srand(time(NULL));
for(i=0;i<5;i++)
for(j=0;j<6;j++)
a[i][j]=rand()%100;
for(i=0;i<5;i++)
{for(j=0;j<6;j++)
printf("%d\t",a[i][j]);
printf("\n");}
max(a);
}
void max(int a[ ][6])
{
int i,j,m,n=0;
for(i=0;i<5;i++)
{ m=a[i][0];
for(j=0;j<5;j++)
{
if(m<a[j+1])
{m=a[j+1];
n=j+1;}}
printf("最大值为%d,下标为%d\n",m,n);}

}
不知道为什么编译不通过,总是说函数max的参数不够。
展开
 我来答
nianbing528
2014-12-12 · 超过17用户采纳过TA的回答
知道答主
回答量:20
采纳率:0%
帮助的人:27万
展开全部
void max(int a[ ][6])
{
int i,j,m,n=0;
for(i=0;i<5;i++)
{ m=a[i][0];
for(j=0;j<5;j++)
{
//if(m<a[j+1])
//二维数组a[j+1]是表示第j+1行的首地址,不是数
if(m<a[i][j+1])
{m=a[i][j+1];
n=j+1;}}
printf("最大值为%d,下标为%d\n",m,n);}

}
追问

这个问题解决后 还是不能运行。

追答
我在VC6.0还有VS2010都试了的,改了之后没有问题啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寒寒家
推荐于2016-08-22 · TA获得超过2919个赞
知道大有可为答主
回答量:1482
采纳率:100%
帮助的人:1971万
展开全部
//在注释的地方做了修改
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void max(int a[ ][6]);
void main()
{ int a[5][6],i,j;
  srand(time(NULL));
  for(i=0;i<5;i++)
    for(j=0;j<6;j++)
     a[i][j]=rand()%100;
  for(i=0;i<5;i++)
    {for(j=0;j<6;j++)
     printf("%d\t",a[i][j]);
     printf("\n");}
    max(a);
}
void max(int a[ ][6])
{
int i,j,m,n=0;
    for(i=0;i<5;i++)
      { m=a[i][0];
        for(j=0;j<5;j++)
           {
            if(m<a[i][j+1])//修改
              {m=a[i][j+1];//修改
               n=j+1;}}
 printf("最大值为%d,下标为%d\n",m,n);}
  
 }
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雨诺与诺
2014-12-12 · TA获得超过1213个赞
知道小有建树答主
回答量:2179
采纳率:33%
帮助的人:680万
展开全部
先把两个维度都写死看看吧。
追问
不好意思哈,刚开始学C语言,不太懂维度写死是什么意思,是指函数定义写a[5][6],好像还是不行
追答
嗯,你看别人的回答,其实你的是对的,两个维度只要写第二个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式