#include<stdio.h>
#define M 2
#define N 2
int FanBei(int a[M][N]);
void Show(int a[M][N]);
void main()
{
int i,j;
int a[M][N];
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}
}
FanBei( a[i][j]);
Show( a[i][j]);
}
int FanBei(int a[M][N])
{
int b[M][N];
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
b[i][j]=2*a[i][j];
}
}
return b[i][j];
}
void Show(int a[M][N])
{
int i,j;
int a[M][N];
for(i=0;i<M;i++)
{
printf("\n");
for(j=0;j<N;j++)
{
printf("%5d\n",a[i][j]);
}
}
}
似乎不能运行啊!
追答可以运行是可以运行,编译也没错!也可以输入数据,但是会出现这个!
我只检查你语法错误,没去看你的程序要实现什么功能。
程序要实现的功能是输入一个数组然后把这个数组翻倍输出,其中要用函数调用。谢谢大神帮忙!!!
追答你说的翻倍是数字的变化,还是数组!看你这个是把a[2][2]变成a[3][5]了! 如果把a[3][5]改成a[2][2]是可以的!
本回答被网友采纳#include<stdio.h>
#define M 2
#define N 2
int FanBei(int a[M][N]);
void Show(int a[M][N]);
void main()
{
int i,j;
int a[M][N];
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}
}
FanBei(a);//实参
Show(a);//实参
}
int FanBei(int a[M][N])
{
int b[M][N];
int i,j;
for(i=0;i<M;i++)//不能是3,超界了
{
for(j=0;j<N;j++)//不能是5,数组超界了。
{
b[i][j]=2*a[i][j];
}
}
for(i=0;i<M;i++)//你的目的是让数组a中的元素值,各自变大一倍,所以把b数组的值,赋到a
{
for(j=0;j<N;j++)
{
a[i][j]=b[i][j];
}
}
return 0;
}
void Show(int a[M][N])
{
int i,j;
//局部变量与形参名相同,不需要这个数组,去掉int a[M][N];
printf("\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf("%5d\n",a[i][j]);
}
}
}
结果: