注册 登录
编程论坛 C++教室

数组问题求教

亚连沃克 发布于 2012-12-09 00:24, 344 次点击
下面是一个寻找自定义数组最大数的代码,
#include <iostream>
using namespace std;
int main()
{
    int max_value(int x,int max);
    int i,j,row=0,colum=0;int max;
    int a[3][4]={{5,12,23,56},{19,28,37,46},{-12,-34,6,8}};
    max=a[0][0];
    for(i=0;i<=2;i++)
    for(j=0;j<=3;j++)
    {max=max_value(a[i][j],max);
    if (max==a[i][j])
    {
        row=i;
        colum=j;
    }
    }
    cout<<"max="<<max<<",row="<<row<<",colum="<<colum<<endl;
}
int max_value(int x,int max)
{
    if(x>max)max=x;
    else x=max;

}
请问为什么红字部分不能改成 if(x>max)max=x;
5 回复
#2
亚连沃克2012-12-09 00:55
求大神啊~求解释
#3
chenhm19912012-12-09 10:35
可以改的,你的函数返回值只要返回max即可,这样的话就可以省略else语句~
#4
空白先生2012-12-09 11:53
你定义的函数没有返回值唉,除了这个里面那个改了也可以用,我试过。
#5
深藏依旧2012-12-09 12:45
#include <iostream>
using namespace std;

int main()
 {
     int max_value(int x,int max);
     int i,j,row=0,colum=0;int max;
     int a[3][4]={{5,12,23,56},{19,28,37,46},{-12,-34,6,8}};
     max=a[0][0];
     for(i=0;i<=2;i++)
        for(j=0;j<=3;j++)
        {max=max_value(a[i][j],max);
     if (max==a[i][j])
     {
         row=i;
         colum=j;
     }
     }
     cout<<"max="<<max<<",row="<<row<<",colum="<<colum<<endl;
     return 0;//返回值
 }
 int max_value(int x,int max)
 {
     if(x>max)max=x;
     else x=max;
     return max;返回值

 }
这样运行就能通过

主函数返回值为int型  就要有返回值 return 0;


#6
亚连沃克2012-12-09 13:49
哦哦,谢谢以上各位,我懂了,需要返回值。
1