天天看點

習題5-2 使用函數求奇數和 (15分)(簡單)

本題要求實作一個函數,計算N個整數中所有奇數的和,同時實作一個判斷奇偶性的函數。

函數接口定義:

int even( int n );
int OddSum( int List[], int N );
           

其中函數

even

将根據使用者傳入的參數

n

的奇偶性傳回相應值:當

n

為偶數時傳回1,否則傳回0。函數

OddSum

負責計算并傳回傳入的

N

個整數

List[]

中所有奇數的和。

裁判測試程式樣例:

#include <stdio.h>

#define MAXN 10

int even( int n );
int OddSum( int List[], int N );

int main()
{    
    int List[MAXN], N, i;

    scanf("%d", &N);
    printf("Sum of ( ");
    for ( i=0; i<N; i++ ) {
        scanf("%d", &List[i]);
        if ( even(List[i])==0 )
            printf("%d ", List[i]);
    }
    printf(") = %d\n", OddSum(List, N));

    return 0;
}

/* 你的代碼将被嵌在這裡 */
           

輸入樣例:

6
2 -3 7 88 0 15
           

輸出樣例:

Sum of ( -3 7 15 ) = 19
           

參考答案:

//其中函數even将根據使用者傳入的參數n的奇偶性傳回相應值:當n為偶數時傳回1,否則傳回0。
int even( int n )
{
    if(n % 2 == 0)
    {return 1;}
    else
    {return 0;}
}

//函數OddSum負責計算并傳回傳入的N個整數List[]中所有奇數的和。
int OddSum( int List[], int N)
{
    int i, sum = 0;
    for(i = 0; i < N; i++)
    {
        if(even(List[i])== 0)
        {
            sum += List[i];
        }
    }
    return sum;
}
           

繼續閱讀