如何编写一个可以返回两个整数的函数?

(我能够用数组的输出解决之前的问题,一切都解决了)

我在这里有一段代码,我想为其编写一个函数来缩短代码。但我不知道该怎么做,因为显然它需要返回两个值而我不知道该怎么做......

或者我应该将此操作分解为两个不同的功能?

或者最好以这种形式保留代码?

  int a2x = 0;
  int m2x = 0;
  for (i = 0; i < n; i++) {
    if (x[i] > 0) {
      a2x = a2x + x[i];
    }
    if (x[i] < 0) {
      m2x++;
    }
  }
  printf("n");
  printf("a2x %5d n", a2x);
  printf("m2x %5d n", m2x);
  int a2y = 0, m2y = 0;
  for (j = 0; j < m; j++) {
    if (y[j] > 0) {
      a2y = a2y + y[j];
    }
    if (y[j] < 0) {
      m2y++;
    }
  }
  printf("a2y %5d n", a2y);
  printf("m2y %5d n",m2y);

回答

您可以使用此返回类型的函数:

struct ReturnType
{
    int a2y;
    int m2y;
};

这种类型反映了它是一对值,而不是相同值的两个实例。即它是一个 X 和一个 M,不是两个 X 也不是两个 Ms。它的行为也像一个可复制的变量,就像返回单个 int。

  • @Davide *Why would you ever create a structure of 2 int instead of using an array?* Because you can return a structure. You can't return an array.

以上是如何编写一个可以返回两个整数的函数?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>