要求func()子函数返回值类型为void,也就是说,和与积都不能通过return 返回,只能通过子函数体的代码求主函数中和与积的值。 定义func()函数的头部为void func(int x,int y,int *p1,int *p2),用形参x和y用来接收主调函数中传过来的整数,定义指针类型形参p1和p2,指针变量p1用来将两个整数的和传递出去,指针变量p2用来将两个整数的积传递出去。 要根据实际需要设定函数形参的数据类型。通过指针,我们可以在一个函数体内访问另一个函数体的变量,这是通过变量名不能做到的。
时间: 2023-06-07 10:06:52 浏览: 151
好的,我明白了您的要求和问题。下面是func()函数的代码实现:
```
void func(int x, int y, int *p1, int *p2) {
*p1 = x + y; // 将两个整数的和通过指针p1传递出去
*p2 = x * y; // 将两个整数的积通过指针p2传递出去
}
```
在函数体内,我们通过指针p1和p2来访问主调函数中传递进来的变量x和y,然后将它们的和和积通过指针传递出去。由于函数返回值类型为void,所以不能通过return语句来直接返回和与积,只能通过指针的方式将它们传递出去。
相关问题
编写一个C语言代码:编写函数求主调函数中两个变量的和与积,要求函数返回值类型为void根据提示,在右侧编辑器 Begin-End 区间补充代码,在主函数中可以定义了四个变量,a与b用来存放从后台读取的整数,sum准备用来存放a与b的和,product准备用来存放a与b的积,通过调用func()函数来求出sum和product的值,要求func()子函数返回值类型为void。
```c
#include <stdio.h>
void func(int a, int b, int *sum, int *product) {
*sum = a + b;
*product = a * b;
}
int main() {
int a, b, sum, product;
// 从后台读取整数并存入a和b中
scanf("%d %d", &a, &b);
func(a, b, &sum, &product);
printf("Sum: %d\n", sum);
printf("Product: %d\n", product);
return 0;
}
```
在主函数main()中从键盘读取两个整数,通过调用func()函数来求出这两个整数的和与积,在主函数main()中输出这两个整数的和与积,要求func()子函数返回值类型为void
好的,我明白了。对于您的问题,以下是代码实现:
```
#include <iostream>
using namespace std;
void func(int a, int b, int& sum, int& product)
{
sum = a + b;
product = a * b;
}
int main()
{
int a, b, sum, product;
cout << "请输入两个整数:" << endl;
cin >> a >> b;
func(a, b, sum, product);
cout << "和:" << sum << endl;
cout << "积:" << product << endl;
return 0;
}
```
请检查一下代码是否与您的问题相符并是否可正常运行。如果您有任何其他问题或需求,请随时告诉我。
阅读全文