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;
}
测试时的错误:
展开
 我来答
小诺的晴空
2015-11-29 · TA获得超过115个赞
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:109万
展开全部
for里面定义变量在c89标准中是不行的,在c99中才可以

你可以在把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压根就没用上
}
phone1234563
2015-11-29
知道答主
回答量:11
采纳率:0%
帮助的人:7.4万
展开全部
你把for循环中变量的声明放到外面就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式