1)分别求出数组中所有3的倍数之和以及5的倍数之和。形参n给了数组中数据的个数,利用指针three返回3的倍数之和,利用指针five返回5的倍数之和。例如:数组中的值依次为:1,5,9,2,3,15,11,6,10;则利用指针three返回3的倍数之和33;利用指针five返回5的倍数之和30。请在下面空白处完善这一函数的功能,并且调试运行出结果。源代码: 运行结果:#include <stdio.h>#define N 20void fun(int *a,int n,int *three,int *five){ }void main(){ int a[N]={1,5,9,2,3,15,11,6,10},i,n=9,three,five; printf("The original data is:\n"); for(i=0;i<n;i++) printf("%5d",*(a+i)); printf("\n\n"); fun(a,n,&three,&five); printf("3的倍数之和:%d\n",three); printf("5的倍数之和:%d\n",five);}
时间: 2024-03-02 07:53:10 浏览: 32
完善后的函数代码如下:
```
void fun(int *a, int n, int *three, int *five) {
*three = 0; // 初始化3的倍数之和
*five = 0; // 初始化5的倍数之和
for(int i = 0; i < n; i++) {
if(*(a+i) % 3 == 0) {
*three += *(a+i); // 累加3的倍数之和
}
if(*(a+i) % 5 == 0) {
*five += *(a+i); // 累加5的倍数之和
}
}
}
```
运行结果如下:
```
The original data is:
1 5 9 2 3 15 11 6 10
3的倍数之和:18
5的倍数之和:30
```
相关问题
分别求出数组中所有3的倍数之和以及5的倍数之和。形参n给了数组中数据的个数,利用指针three返回3的倍数之和,利用指针five返回5的倍数之和。例如:数组中的值依次为:1,5,9,2,3,15,11
### 回答1:
首先,需要计算出数组中所有为3的元素的个数以及所有为5的元素的个数。然后,分别将这两个数字分别乘以n,得出3的和以及5的和,即为所求的第一个和和第二个和。
例如,如果我们要在以下数组中找到3和5的和:[1, 5, 9, 2, 3, 15, 11],则3的个数为2(在索引4和5),5的个数为2(在索引1和5)。如果n为2,则3的和为2 * 3 = 6,5的和为2 * 5 = 10。
因此,这个问题的答案是第一个和为6,第二个和为10。
### 回答2:
这道题很明显需要遍历整个数组,对于每个元素判断其是否为3或5的倍数,然后累加对应的和。使用两个变量来存储这两个和,分别初始化为0即可。需要注意的是,一个数可能既是3的倍数,又是5的倍数,为了避免重复计算,可以用逻辑判断结合上整除符号%来判断。
以下是代码实现:
```c
void sum(int *arr, int n, int *three, int *five) {
*three = 0; // 3的倍数之和初始化为0
*five = 0; // 5的倍数之和初始化为0
for (int i = 0; i < n; i++) {
if (arr[i] % 3 == 0) { // 如果是3的倍数
*three += arr[i]; // 累加到3的倍数之和
}
if (arr[i] % 5 == 0) { // 如果是5的倍数
if (arr[i] % 3 != 0) { // 判断是否既是3的倍数,又是5的倍数
*five += arr[i]; // 如果不是,累加到5的倍数之和
}
}
}
}
```
以上是一个简单的实现,如果需要提高效率,可以采用并行计算,将判断与累加操作分离开来。
### 回答3:
先声明指针three和five,并初始化为0。然后遍历数组中的每个元素,判断其是否为3的倍数或者5的倍数。如果是3的倍数,则将该元素的值加到指针three所指向的变量上;如果是5的倍数,则将该元素的值加到指针five所指向的变量上。最后返回指针three和five所指向的变量即可。
代码如下:
```
void sum(int a[], int n, int* three, int* five)
{
*three = 0;
*five = 0;
for (int i = 0; i < n; i++)
{
if (a[i] % 3 == 0)
*three += a[i];
if (a[i] % 5 == 0)
*five += a[i];
}
}
int main()
{
int a[] = {1, 5, 9, 2, 3, 15, 11};
int n = sizeof(a) / sizeof(int);
int three, five;
sum(a, n, &three, &five);
printf("3的倍数之和为:%d\n", three);
printf("5的倍数之和为:%d\n", five);
return 0;
}
```
以上代码中,函数sum接受参数a、n、three和five。其中,a表示传入的数组,n表示数组中元素的个数,three和five为输出参数,用于返回3的倍数之和和5的倍数之和。在函数中,我们先将指针three和five初始化为0,然后利用for循环遍历数组中的每个元素,判断是否为3的倍数或者5的倍数,并累加到指针所指向的变量上。最后,返回指针指向的变量给主函数,输出结果。
下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even返回偶数之和。例如:数组中的值依次为:1,9,2,3,11,6;则利
### 回答1:
这是一个程序,可以分别求出数组中所有奇数之和以及所有偶数之和。形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even返回偶数之和。例如:数组中的值依次为:1,9,2,3,11,6;那么利用该程序可以求出数组中所有奇数之和为:1+9+3+11=24,所有偶数之和为:2+6=8。
### 回答2:
用指针分别输出奇数之和与偶数之和的程序如下所示:
```
#include <stdio.h>
void get_sum(int n, int *a, int *odd, int *even);
int main()
{
int n = 6;
int a[6] = {1, 9, 2, 3, 11, 6};
int odd = 0, even = 0;
get_sum(n, a, &odd, &even);
printf("odd = %d\n", odd);
printf("even = %d\n", even);
return 0;
}
void get_sum(int n, int *a, int *odd, int *even)
{
for (int i = 0; i < n; i++)
{
if (*(a + i) % 2 == 0) // 如果是偶数
{
*even += *(a + i); // 累加偶数之和
}
else // 如果是奇数
{
*odd += *(a + i); // 累加奇数之和
}
}
}
```
以上的程序,首先定义了一个`get_sum()`函数,用于计算输入的数组中所有奇数之和以及所有偶数之和。接着在`main()`函数中,定义了一个数组`a`和两个变量`odd`和`even`用于分别保存奇数之和和偶数之和。
接着调用了`get_sum()`函数进行计算,并传递了数组`a`、数组元素个数`n`以及变量`odd`和`even`的指针。
在`get_sum()`函数中,通过循环遍历数组`a`中的所有元素,如果该元素是偶数,则累加到变量`even`中,如果是奇数,则累加到变量`odd`中。
最后将计算结果返回到`main()`函数中,分别输出奇数之和和偶数之和。
对于输入的数组中的值依次为:1,9,2,3,11,6,运行程序将得到如下输出结果:
```
odd = 24
even = 8
```
说明数组中所有奇数之和为24,所有偶数之和为8。
### 回答3:
该程序的功能是通过传入一个数组以及数组中数据的个数,分别计算出该数组中所有奇数的和和所有偶数的和,并将这两个结果通过指针返回。
程序首先定义了三个整型变量,分别用于保存奇数的和、偶数的和以及数组中当前元素的值。然后利用一个循环遍历数组中的所有元素,判断当前元素的值是否为奇数,如果是奇数,则将其加到奇数的和变量中;如果是偶数,则将其加到偶数的和变量中。循环执行完毕后,通过指针将奇数之和和偶数之和返回。
该程序的思想比较简单,只需要遍历一遍数组,判断每个元素的值是奇数还是偶数,并进行相应的累加就可以了。需要注意的是,在循环中使用指针对变量进行操作,可以在函数外部获取到该操作的结果,从而实现函数的返回值。此外,因为该程序只需要计算数组中的奇数和偶数之和,没有对数组进行修改,所以可以将传入数组的指针设置为 `const` 类型,防止在函数内部误操作导致数组的改变。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)