close

#include <stdio.h>

// 計算:行列式、移動數量 
int count ( int array[] , int move ) {
    
    int total = 0 ; // 計算總和
    int seat = 0 ; // 起始位置
    for ( seat = 0 ; seat < 9 ; seat += 3 ) {
        int value = 1 , spot = seat ; // 計算的數值;元素的位置
        int amount = 0 ; // 計算的數量
        for ( amount = 0 ; amount < 3 ; amount += 1 ) {
            value *= array[spot] ;
            spot += move ; // 下一個位置
            if ( spot >= 9 ) {
                spot -= 9 ; // 超過陣列元素上限時,設定到指定位置 
            } 
            else if ( spot < 0 ) {
                spot += 9 ; // 低於陣列元素底線時,設定到指定位置 
            }
        } 
        total += value ; // 計算總和 
    } 
    return total ; // 回傳總和
     
}

int main ( void ) {
    
    int data = 0 ; // 資料數量
    scanf ( "%d" , &data ) ;
    for ( ; data > 0 ; data -= 1 ) {
        int array [9] = {} ; // 行列式,用一維陣列表示
        int element = 0 ; // 陣列的元素位置
        // 行列式的輸入 
        for ( element = 0 ; element < 9 ; element += 1 ) {
            scanf ( "%d" , &array[element] ) ;
        } 
        
        // 正數的計算
        int add = count ( array , 4 ) ; // 正數總和 
        // 負數的計算
        int reduce = count ( array , -2 ) ; // 負數總和 
        // 顯示計算結果 
        printf ( "%d\n" , add - reduce ) ;
    } 
    
    return 0 ;
    

arrow
arrow
    文章標籤
    C
    全站熱搜
    創作者介紹
    創作者 幻空 的頭像
    幻空

    幻空的世界

    幻空 發表在 痞客邦 留言(0) 人氣()