大神看下这个二维数组 想求每一行中的最大值 输出来总是第一个数

qq_31897979 2015-11-26 11:16:38
#include<stdio.h>
void max ( int a[3][4] );
int main()
{
int a[3][4] , i , j , k , f ;
for( i=0 ; i<3 ; i++ )
{
for( j=0 ; j<4 ; j++ )
{
printf("输入数字\n");
scanf ("%d",&a[i][j]);}}
max(a);
for( k=0 ;k<3 ; k++)
printf("%d",a[k][0]);





}
void max ( int a[3][4] )
{ int i , j , max , t ,k;

for( i=0 ; i<3 ; i++ )
{ max = a[i][0];
for( j=1 ;j<4 ; j++)

{ if( a[i][j]>max )
{

t=max;
max=a[i][j];
a[i][j]=t;
}

} printf("%d",a[i][0]);
}

}
...全文
441 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
libinden71 2015-11-26
  • 打赏
  • 举报
回复
for( k=0 ;k<3 ; k++) printf("%d",a[k][0]); 这里a[k][0] 肯定就输出第一个数啊,[0][0],[1][0],[2][0] 二维数组 输出也得用2重循环输出!
paschen 2015-11-26
  • 打赏
  • 举报
回复
printf("%d",a[k][0]); 你代码中不是每次都只输出第0个元素,也就是最前面那个啊
qq_31897979 2015-11-26
  • 打赏
  • 举报
回复
输出来总是每一行的第一个数。为什么啊??
qq_31897979 2015-11-26
  • 打赏
  • 举报
回复
int& max = a[i][0]; 这句话是什么意思 ,能不能告诉我一下 是不是就是把a[i][0]的地址值赋值给 max ,但是数组的形参可以改变实参的吗?
橘风之轮 2015-11-26
  • 打赏
  • 举报
回复
void max ( int a[3][4] ) { int i , j , t ,k; for( i=0 ; i<3 ; i++ ) { int& max = a[i][0]; for( j=1 ;j<4 ; j++) { if( a[i][j]>max ) { t=max; max=a[i][j]; a[i][j]=t; } } printf("%d",a[i][0]); } } 改成这样就可以了。。。不然了解不了你到底要表达啥
Tanguiqing 2015-11-26
  • 打赏
  • 举报
回复
不需要交换,重新命名一个数组来接每行最大的数组。输出地就是新数组啦。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧