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);
}
} 展开
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);
}
} 展开
展开全部
以下是求每一行上最大、每一列上最小的程序:
#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);
}
}
展开全部
定义不对。
必须静态指定数组的大小,而不能使用下标。也就是说你应该先指定一个最大的可能的数组大小。
必须静态指定数组的大小,而不能使用下标。也就是说你应该先指定一个最大的可能的数组大小。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这又不是c++,不是你想在哪定义就可以在哪定义的
int a[i][j]; 把这个中的i j 换为宏定义的M和N,可以定义M=100,N=100;
然后将整体移到开始的位置,可以放在int i,j,k,l,min,max;这个的后面
然后你后面貌似也有错误,你自己改改看吧,我没法复制下来去该,你自己改吧
int a[i][j]; 把这个中的i j 换为宏定义的M和N,可以定义M=100,N=100;
然后将整体移到开始的位置,可以放在int i,j,k,l,min,max;这个的后面
然后你后面貌似也有错误,你自己改改看吧,我没法复制下来去该,你自己改吧
追问
请问下,如果定义该二维数组为100乘100的话,那用scanf该如何给数组赋值呢~~就是因为想不清楚 才用代码里的方法,虽然我也知道这样的定义十有八九是不对的额~~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误还不少,第一C中定义语句前不能有任何非定义性语句,因此int a[i][j]位置错了;第二数组大小必须是常量而不能是变量,即使是已经初始化了的变量也不行,因此a[i][j]中i,j必须换成常数;第三使用scanf函数时格式控制部分最好不要添加逗号,空格什么的,否则在输入时必须输入相应的字符,因此建议山区scanf("%d,%d",&i,&j);这条语句中第一个逗号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a[i][j];
搞在main下面定义 这样定义是错的
搞在main下面定义 这样定义是错的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |