m0_64001347 2021-12-20 17:23 采纳率: 83.3%
浏览 246
已结题

编写一个函数mySum,其功能是计算一个数组中的所有奇数之和与偶数之和。

函数原型可参考如下:
void mySum(int *p, int len, int *sumOdd, int *sumEven);
其中,p为指向数组首元素的指针,len为数组中的元素个数,sumOdd为指向所求奇数之和的指针,sumEven为指向所求偶数之和的指针。
如,数组中的原始数据为:1,0,3,4,0,2,5。则函数计算的奇数之和为9,偶数之和为6。
编写程序,从键盘输入一个正整数n(1<=n<=100),代表数据元素个数,接着输入n个整数,代表数组元素的初始值,调用mySum函数处理完毕后,在主函数中输出计算出的奇数之和与偶数之和。输出的两个数据之间用空格分隔。
输入:
6 3 10 5 6 9 4
输出:
17 20
样例输入:
10 4 0 0 1 9 4 9 4 5 10
样例输出:
24 22
提示:
注意输出顺序,先输出奇数之和,再输出偶数之和。

  • 写回答

1条回答 默认 最新

  • forget hurt 2021-12-20 17:35
    关注
    
    #include<stdio.h>
    void mySum(int *p, int len, int *sumOdd, int *sumEven);
    int main(void)
    {
        int a[105];//定义一个数组,存入输入的数
        int i;
        int n;
        int odd=0,even=0;//奇数偶数
        scanf("%d",&n);//输入的元素个数
        for(i = 0;i< n;++i)
        {
            scanf("%d",&a[i]);//将数组元素输入
        }
        mySum(a,n,&odd,&even);//调用函数
          printf("%d %d",odd,even);
    }
    void mySum(int *p, int len, int *sumOdd, int *sumEven)//因为函数没有返回值所以用指针传参
    {
        int i;
        for(i = 0;i < len; ++i)
        {
            if(p[i]%2==0)
            {
                (*sumOdd)+=p[i];
            }
            else if(p[i]%2!=0)
            {
                (*sumEven)+=p[i];
            }
        }
      return ;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月20日
  • 已采纳回答 12月20日
  • 创建了问题 12月20日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!