當前位置:名人名言大全網 - 短信平臺 - 用c語言編程求 18位 身份證的驗證碼

用c語言編程求 18位 身份證的驗證碼

除了樓上所說的,在補充壹點

1:char id[19]; //最後壹個字節是用於'\0'的

2:除了這個原因,還有壹個更重要的是gets得到的都是字符,在妳的jisuan函數裏,for循環中

result+=((*p)*(*q));

這句話其實是字符的ascII碼相乘的,並不是數字相乘,可以改成

(((*p) - '0') * ((*q) - '0'));

這樣就是對應字符的數字相乘了(這個很好理解吧?)

3:雖然jisuan返回的是個比較小的數,但是在for循環裏計算的時候result定義成char型的會有溢出,會對妳的結果有影響吧,我建議改成unsigned int