定义可以接受不同参数的函数

时间:2012-11-13 20:21:39

标签: c++

我正在编写一个程序,它对一个结构distanceType执行两个操作,该结构由三个整数成员组成:英尺,码和英里。函数convertYards在码中的距离大于或等于1760(因为那里在一英里内是1760码)并将其转换为x英里,y码和z英尺(即distanceType)。我在使用函数参数时遇到问题。 convertYards接受一个整数值并返回distanceType。问题是我不知道如何定义函数。因为它可以接受distance1或distance2(整数值),所以代码的一小部分在下面,带有“???”的区域是我很困惑的。

struct distanceType
{
  int miles;
  int yards;
  int feet;
}

distanceType convertYards(int ???)  //Define convertYards

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

因此,类似下面的代码,如果没有编译,可能需要进行一些更改,但应该捕捉到本质。

struct distanceType
{
  int miles;
  int yards;
  int feet;
}

distanceType convertYards(int nYards)
{
    distanceType distance;

    distance.miles = nYards / 1760;
    distance.yards = nYards - distance.miles * 1760;
    distance.feet = 0;   // since value is integer number of yards, feet is always zero
    return distance;
}

此功能将按如下方式使用:

int main ()
{
   distanceType dt1, dt2;
   int          y1 = 3500, y2 = 5700;

   dt1 = convertYards (y1);
   dt2 = convertYards (y2);

   printf (" %d yards = %d miles, %d yards, and %d feet", y1, dt1.miles, dt1.yards, dt1.feet);
   printf (" %d yards = %d miles, %d yards, and %d feet", y2, dt2.miles, dt2.yards, dt2.feet);
   return 0;
}