C语言的一道题,我自己写了个代码,但是测试时有错,改不来。希望大神帮帮忙,在线等,急急急!!!
问题:写自定义函数求3×4矩阵中每一行的最大值,编写相应的主函数测试。函数原型为:voidMax(inta[3][4],intb[3])代码:#include<stdio...
问题:写自定义函数求3×4矩阵中每一行的最大值,编写相应的主函数测试。
函数原型为: void Max(int a[3][4], int b[3])
代码:
#include<stdio.h>
void Max(int a[3][4],int b[3])
{
for(int i=0,mid=0;i<3;i++)
{
for(int j=1;j<4;j++)
{
if(a[i][j-1]>a[i][j])
mid=a[i][j-1];
else mid=a[i][j];
}
}
printf("%d",b);
}
int main()
{
int a[3][4],b[3];
printf("请输入一个3*4的矩阵\n");
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
scanf("%d",&a[i][j]);
Max(a,b);
return 0;
}
测试时的错误: 展开
函数原型为: void Max(int a[3][4], int b[3])
代码:
#include<stdio.h>
void Max(int a[3][4],int b[3])
{
for(int i=0,mid=0;i<3;i++)
{
for(int j=1;j<4;j++)
{
if(a[i][j-1]>a[i][j])
mid=a[i][j-1];
else mid=a[i][j];
}
}
printf("%d",b);
}
int main()
{
int a[3][4],b[3];
printf("请输入一个3*4的矩阵\n");
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
scanf("%d",&a[i][j]);
Max(a,b);
return 0;
}
测试时的错误: 展开
2个回答
展开全部
for里面定义变量在c89标准中是不行的,在c99中才可以
你可以在把int i放到外面来即可,就是不要在for()中的括号里面
你可以在把int i放到外面来即可,就是不要在for()中的括号里面
追答
void b(int a[3][4], int b[3])
{
for (int i = 0; i<3; i++)
{
b[i] = a[i][0]; //假设第一个为最大值
for (int j = 1; j<4; j++)
{
if (b[i]<a[i][j])//依次和后面的元素比较
b[i] = a[i][j];
}
}
printf("%d %d %d\n", b[0], b[1], b[2]);
//数组怎能用b来打印呢,要打印他的元素,b是数组的地址,而且你上面的b压根就没用上
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询