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

请教一下函数重载问题,这个程序为什么编译不通过,谢谢!

bxxue 发布于 2013-09-25 23:03, 366 次点击
#include "stdafx.h"
int max (int a,int b)
{
    return 111;
}
int max (int a,int b,int c)
{
    return 222;
}
int max (int array[],int len)
{
    int imax = 0;
    for (int i = 0;i < len;i++)
    {
        if (array[i] > imax)
        {
            imax = array [i];
        }
    }
    return imax;
}
float max (float array[],int len)
{
    float imax = 0;
    for (int i = 0;i < len;i++)
    {
        if (array[i] > imax)
        {
            imax = array [i];
        }

    }
    return imax;
}
double max (double array[],int len)
{
    double imax = 0;
    for (int = 0;i)
    {
        if (array [i] > imax)
        {
            imax = array [i]''
        }
    }
    return imax;

}


int _tmain(int argc, _TCHAR* argv[])
{
    int a[6] = {1,2,3,4,5,6};
    float af[6] = {1.0,3.0,1.0,0,0,99.8877};
   
    printf ("%d,%d\n",max (1,2),max (1,1,1));
    printf ("数组a最大值为%d\n",max (a,sizeof(a)/sizeof(int));
    printf ("数组a最大值为%f\n",max (af,sizeof (af)/sizeof(float));



    return 0;

}
2 回复
#2
xufan2013-09-25 23:36
给你改了下:
程序代码:
#include <iostream>
using namespace std;

int max (int a,int b)
{
    return 111;
}
int max (int a,int b,int c)
{
    return 222;
}
int max (int array[],int len)
{
    int imax = 0;
    for (int i = 0;i < len;i++)
    {
        if (array[i] > imax)
        {
            imax = array [i];
        }
    }
    return imax;
}
float max (float array[],int len)
{
    float imax = 0;
    for (int i = 0;i < len;i++)
    {
        if (array[i] > imax)
        {
            imax = array [i];
        }

    }
    return imax;
}
double max (double array[],int len)
{
    double imax = 0;
    for (int i = 0;i < len; i++)
    {
        if (array [i] > imax)
        {
            imax = array [i];
        }
    }
    return imax;

}


int main(int argc, char* argv[])
{
    int a[6] = {1,2,3,4,5,6};
    double af[6] = {1.0,3.0,1.0,0,0,99.8877};

    printf ("%d,%d\n",max (1,2),max (1,1,1));
    printf ("数组a最大值为%d\n",max (a,sizeof(a)/sizeof(int)));
    printf ("数组a最大值为%f\n",max (af,sizeof (af)/sizeof(float)));



    return 0;

}

1