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的参数不够。 展开
#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的参数不够。 展开
3个回答
展开全部
//在注释的地方做了修改
#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);}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把两个维度都写死看看吧。
追问
不好意思哈,刚开始学C语言,不太懂维度写死是什么意思,是指函数定义写a[5][6],好像还是不行
追答
嗯,你看别人的回答,其实你的是对的,两个维度只要写第二个。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询