如题,不知道应该怎么改

题目:编一个字函数,该字函数的功能是求出数组中所有奇数和的平方以及所有偶数的平方和,编写主函数,在主函数中输入数组元素大小n(n<=100)的值及n个数组元素的值,调用定义的字函数进行计算,并在主函数中输出奇数和和偶数和。
#include
using namespace std;
int pf(int b[],int n)
{
int i,j,s1,s2;
s1=0,s2=0;
for(i=0;i<n;i++)
{
if(b[n]%2==0)
{
s1=(s1+b[n])*(s1+b[n]);
return s1;
}
else if(b[n]%2!=0)
{
s2=s2+b[n]*b[n];
return s2;
}

}

}
int main()
{
const int n=10;
int a[n]={1,2,3,4,5,6,7,8,9,0},sum1,sum2;
sum1=pf(a[n],10);
sum2=pf(a[n],10);
cout<<sum1;
cout<<sum2;
}


#include<iostream>
#include<cmath>
using namespace std;

void fn(int num[],int n,int *sum1,int *sum2)
{
    for(int i=0; i<n; i++)
    {
        if(num[i]%2)
        {
            *sum1+=pow(num[i],2);
        }
        else
        {
            *sum2+=pow(num[i],2);
        }
    }

}

int main()
{
    const int n=10;
    int a[n]= {1,2,3,4,5,6,7,8,9,0},sum1=0,sum2=0;
    fn(a,n,&sum1,&sum2);
    cout<<sum1<<endl;
    cout<<sum2<<endl;
}

一个函数的话,你要么把和也传进去,要么像楼上一样,再加个参数区分一下是计算奇数和还是偶数

给你改了下:

#include <iostream>
#include <stdio.h>
#include <vector>
#include <string.h>

using namespace std;


int pf(int b[],int n,bool isbase)
{
    int s1,s2;
    s1=0,s2=0;
    for(int i=0;i<n;i++)
    {
        if(b[i]%2==0)
        {
            s1+=b[i];
        }
        else
        {
            s2+=b[i];
        }
    }
    if(isbase)  //这个用于判断是返回奇数和还是偶数和
    {
        return s1*s1;
    }else
    {
        return s2*s2;
    }


}
int main()
{
    const int n=10;
    int a[n]={1,2,3,4,5,6,7,8,9,0};
    int sum1,sum2;
    sum1=pf(a,10,true);
    sum2=pf(a,10,false);
    cout<<sum1<<endl;
    cout<<sum2<<endl;
}

img