gpt4 book ai didi

c - 如何返回多个值并将它们存储在 main() 函数中?

转载 作者:太空宇宙 更新时间:2023-11-04 00:49:41 25 4
gpt4 key购买 nike

我想从函数返回两个或多个值,并想将这些值存储到 main() 函数中。我正在尝试通过以下代码来执行此操作。

#include <stdio.h>
#include <stdlib.h>

int main()
{
int num1, num2, s, p;
printf("Enter tow numbers: ");
scanf("%d %d", &num1, &num2);
p = function(num1, num2);
s = function(num1, num2);
printf("Sum is: %d\nProduct is: %d", p, s);
return 0;
}

int function(int x, int y)
{
int sum, product;
sum = x+y;
product = x*y;
return product, sum;
}

如果我输入两个数字,比如 5 2 我希望我的结果是:

Sum is: 7
Product is: 10

但我两个都得了 7 分。我怎样才能得到我想要的输出?

最佳答案

C 不允许您定义返回多种类型或单一类型的多个实例的函数。但是,您可以使用 struct 将相似或不同类型的变量捆绑到一个新的用户定义类型中。 .在这种情况下,您可以执行以下操作:

#include <stdio.h>
#include <stdlib.h>

typedef struct myStruct {
int sum;
int product;
} myStruct;

myStruct function(int x, int y) {
myStruct val;
val.sum = x+y;
val.product = x*y;
return val;
}

int main() {
int num1, num2;
myStruct result;
printf("Enter tow numbers: ");
scanf("%d %d", &num1, &num2);
result = function(num1, num2);
printf("Sum is: %d\nProduct is: %d", result.sum, result.product);
return 0;
}

此外,虽然您上面的程序在语法上是正确的,但函数返回中的 , 结果仅返回逗号分隔值集合中的最后一个值。通常 , 不与 return 一起使用;但是,在 for 循环中使用它会非常方便。

关于c - 如何返回多个值并将它们存储在 main() 函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23436666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com