阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 經濟部所屬事業機構_新進職員甄試_統計資訊:1.資料庫及資料探勘 2.程式設計#111347
科目:國營事業◆1.資料庫及資料探勘 2.程式設計
年份:111年
排序:0

題組內容

五、A 公司 1 月人事資料檔案如下表,請撰寫下列程式片段。(2 題,共 15 分)
6357492c482b9.jpg

申論題內容

(一) A公司員工代號共 6碼數字,第 6碼是前 5碼總和的個位數,請撰寫一函式 check_dit() ,以檢查員工代號之正確性。(7 分)

詳解 (共 1 筆)

詳解 提供者:polar33794

#include <stdio.h>
#include <stdbool.h>

void check_dit(int emp_id2)
{
    char empid2C[20];
    int empid2D[20];
    bool flag=true;
    int Total;
    sprintf(empid2C,"%d",emp_id2);
    for(int x=0;x<6;++x)
    {
        if(isdigit(empid2C[x]))
        {
            empid2D[x]=empid2C[x]-48;
            printf("empid2D[%d]=%d\n",x,empid2D[x]);
        }
        else
        {
            flag=false;
            printf("偵測到非數值,或是數值非6位數\n");
            break;
        }
    }
    if(flag)
    {
        for(int y=0;y<5;++y)
        {
            Total+=empid2D[y];
            printf("Total=%d\n",Total);
        }
        if(empid2D[5]==(Total%10))
        {
            printf("第6碼的驗證碼 正確!");
        }
        else
        {
             printf("第6碼的驗證碼 不正確!");
        }
    }
}

解法二

#include <math.h>

Int Check_dit(int emp_id)
{
Int emp_idN[20];
Int Total=0;
    For(int x=1;x<=6;++x){
        emp_idN[x-1]=(emp_id/pow(10,6-x))%10;
}
For(int y=1;y<=5;++y)
{
    Total+=emp_idN[y-1];
    }
If(Total%10==emp_idN[5])
    Return 1
Else
    Return 0;
}