1. 程式人生 > >A place to record sth.

A place to record sth.

1、輸入身份證號,通過計算比較校驗位來判斷身份證號是否正確。

如,aaaaaayyyymmddxxsp共18位,其中:

年份程式碼yyyy共4位。最後一位p為校驗位。

校驗規則是:

(1)對前17位數字的權求和 S=Sum(Ai*Wi),i=0,...,16

Ai:表示第i位置上的身份證號碼數字值

Wi:表示第i位置上的加權因子

Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

(2)計算模 Y=mod(S,11)

(3)通過模得到對應的校驗碼

        Y:0 1 2 3 4 5 6 7 8 9 10

校驗碼:1 0 X 9 8 7 6 5 4 3 2

例如,如果得到Y為9則最後的校驗位p應該為3

如果校驗位不是3,則該身份證號碼不正確。

輸入示例:

110130197606175317

輸出示例:

110130197606175317 正確.

輸入示例:

110200197501175220

輸出示例:

應為:11020019750117522X

2、顯示出如下陣列中的所有元素,並使用二分查詢法在陣列中查詢元素。

int a[]={-90,-32,12,16,24,36,45,59,98,120};

輸入輸出示例

-90   -32   12   16   24   36   45   59   98   120

請輸入所要查詢的元素:24

輸出:第5個元素為24,比較次數為1

請輸入所要查詢的元素:120

輸出:第10個元素,比較次數為4

請輸入所要查詢的元素:6

輸出:查詢失敗 比較次數為3

3、輸入學生個數以及每個學生的姓名和3門課程成績:輸出不及格學生的資訊;按平均成績排序,從高到低輸出學生資訊。

輸入示例:

5

zhaoyi     70 80 91

zhanger   68 40 90

zhangsan 60 70 80

lisi            70 80 90

wangwu   52 70 100

輸出示例:

*name: zhanger   score:68 40 99

*name: wangwu   score:52 70 100

[1]  name:zhaoyi     70 80 91

[2]  name:lisi           70 80 90

[3]  name:wangwu  52 70 100

[4]  name:zhangsan 60 70 80

[5]  name:zhanger   68 40 99