#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
題目:
有一8位數的統一編號,
各乘以權重(左一到右2)8,7,6,5,4,3,2,
加起來除以10的餘數,
如與最右1位數相等擇合法,
反之不合法
*/
int str(const char str[ ])
{
char token;
int sum=0,length,i;
length=strlen(str);
for(i=0;i<length-1;i++)
{
sum+=(8-i)*(str[i]-'0');//減掉 '0' 才不會是字元編碼
} //(8-i)是權重8,7,6,5,4,3,2
if((sum%10)==str[length-1]-'0')//如果和最右1數字相
//等則合法
return (1);
else
return (0);
}
int main()
{
char array[9];
printf("請輸入一數:\n");
scanf("%s",&array);//s是字串
if(str(array)==1)
{
printf("合法");
}
else
{
printf("不合法");
}
}