C语言,输入一个矩阵,找出所在行上最大,列上最小的数。(可能没有) 可能定义出错,求大虾指教!!!!

#include<stdio.h>main(){inti,j,k,l,min,max;printf("请输入矩阵的规格:\n");scanf("%d,%d",&i,&j)... #include<stdio.h>

main()
{
int i,j,k,l,min,max;
printf("请输入矩阵的规格:\n");
scanf("%d,%d",&i,&j);
printf("这是一个%d乘%d的矩阵\n",i,j);
int a[i][j];
printf("请输入该矩阵:\n");
for(k=0;k<i;k++)
for(l=0;l<j;l++)
scanf("%d",a[k][l]);
for(k=0;k<i;k++)
{
max=a[k][0];
for(l=0;l<j;l++)
{
if(a[k][l+1]>a[k][l])
max=a[k][l+1];
}
printf("第%d行的最大值 %d",k+1,max);
}
for(l=0;l<j;l++)
{
min=a[0][l];
for(k=0;k<i;k++)
{
if(a[k+1][l]>a[k][l])
min=a[k+1][l];
}
printf("第%d列的最小值 %d",l+1,min);
}

}
展开
 我来答
听不清啊
高粉答主

2017-09-03 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
以下是求每一行上最大、每一列上最小的程序:
#include<stdio.h>
main()
{
int i,j,k,l,min,max;
printf("请输入矩阵的规格:\n");
scanf("%d,%d",&i,&j);
printf("这是一个%d乘%d的矩阵\n",i,j);
int a[i][j];
printf("请输入该矩阵:\n");
for(k=0;k<i;k++)
for(l=0;l<j;l++)
scanf("%d",&a[k][l]);
for(k=0;k<i;k++)
{
max=a[k][0]; 
for(l=0;l<j;l++)
{
if(a[k][l]>max)
max=a[k][l];
}
printf("第%d行的最大值 %d\n",k+1,max);
}
for(l=0;l<j;l++)
{
min=a[0][l];
for(k=0;k<i;k++)
{
if(a[k][l]<min)
min=a[k][l];
}
printf("第%d列的最小值 %d\n",l+1,min);
}

}

不过题目的意思应该不是这样的。应该是“找出所在行上最大,同时又是列上最小的数”。
#include<stdio.h>
main()
{
int i,j,k,l,min,max,t1,t;
printf("请输入矩阵的规格:\n");
scanf("%d,%d",&i,&j);
printf("这是一个%d乘%d的矩阵\n",i,j);
int a[i][j];
printf("请输入该矩阵:\n");
for(k=0;k<i;k++)
for(l=0;l<j;l++)
scanf("%d",&a[k][l]);
for(k=0;k<i;k++)
{
max=a[k][0]; 
for(l=0;l<j;l++)
{
if(a[k][l]>max)
{
max=a[k][l];
t1=l;
}
}
t=1;
for(l=0;l<i;l++)
{
if(a[l][t1]<max)
{
t=0;
}
}
if(t)
printf("第%d行%d列的值 %d 为行上最大、列上最小\n",k+1,t1+1,max);
}
}

我是Talentbdd
2011-11-19 · TA获得超过566个赞
知道小有建树答主
回答量:548
采纳率:0%
帮助的人:317万
展开全部
定义不对。
必须静态指定数组的大小,而不能使用下标。也就是说你应该先指定一个最大的可能的数组大小。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郭东涛frank
2011-11-19 · 超过11用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:39.9万
展开全部
这又不是c++,不是你想在哪定义就可以在哪定义的
int a[i][j]; 把这个中的i j 换为宏定义的M和N,可以定义M=100,N=100;
然后将整体移到开始的位置,可以放在int i,j,k,l,min,max;这个的后面
然后你后面貌似也有错误,你自己改改看吧,我没法复制下来去该,你自己改吧
追问
请问下,如果定义该二维数组为100乘100的话,那用scanf该如何给数组赋值呢~~就是因为想不清楚 才用代码里的方法,虽然我也知道这样的定义十有八九是不对的额~~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旷野游云
2011-11-20 · TA获得超过264个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:224万
展开全部
错误还不少,第一C中定义语句前不能有任何非定义性语句,因此int a[i][j]位置错了;第二数组大小必须是常量而不能是变量,即使是已经初始化了的变量也不行,因此a[i][j]中i,j必须换成常数;第三使用scanf函数时格式控制部分最好不要添加逗号,空格什么的,否则在输入时必须输入相应的字符,因此建议山区scanf("%d,%d",&i,&j);这条语句中第一个逗号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fy1012025375
2011-11-19 · TA获得超过115个赞
知道答主
回答量:224
采纳率:0%
帮助的人:97.7万
展开全部
int a[i][j];
搞在main下面定义 这样定义是错的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式