close

 

 

#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("不合法");
        }
}

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 布拉怡 的頭像
    布拉怡

    nini的部落格

    布拉怡 發表在 痞客邦 留言(0) 人氣()