五、A 公司 1 月人事資料檔案如下表,請撰寫下列程式片段。(2 題,共 15 分)
#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;
}