将函数参数变量返回给c中的main

时间:2018-07-18 13:16:53

标签: function arguments main

很抱歉,如果这很愚蠢,但是我做了一些简单的代码来阐明我的观点。即是这个。如果我从主函数中将int x,y用作参数,是否应该不能使用return()将它们导出回主函数中?

#include <stdio.h>

/*function prototype */
int add(int x, int y);

int
main()
{
 int x, y;
 printf("enter # to add ->\n");
 scanf("%d", &x);
 printf("enter # to add ->\n");
 scanf("%d", &y);

 /* function call */

 /* print statement 1 */
 printf("The sum is -> %d, x -> %d and y was-> %d \n", add(x, y)); 

 /*print statement 2 always is fine*/
 printf("The sum is -> %d", add(x,y));

 /* print statement 3 */
 printf(" the sum is -> %d, x-> %d, and y-> %d \n", add(x, y), x, y);
return(0);
}

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

样本 Print1 ex。如果x,y输入分别为6.7,则得到“总和为-> 13,x-> 6和y was-> -1346575416”。显然y存在问题。.

Print3 ex。对于此示例,这是最简单的方法,但是我需要知道如何通过函数得出 x,y的任何操纵值

我尝试重命名函数中的x,y变量(即xx = x,yy = y),添加它们,然后在return(sum,xx,yy)中使用它们,但这也无济于事。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

这不能用C语言完成,但是您可以尝试一些方法,例如使用struct或使用指针。 例如:

typedef struct _OP{
  int x, y, sum;
}Operate;

Operate add(Operate addOperation){
  addOperation.sum = addOperation.x + addOperation.y;
  return addOperation;
}

int main(){

Operate num, result;
num.x = 10;
num.y = 5;
result = add(num);
printf("x : %i, y : %i, sum : %i", result.x, result.y, result.sum);

return 0;

}

希望有帮助,