【問題】請教c語言的前輩!


Recommended Posts

我是用Dev-C++編寫的

剛學大概五天...

各位前輩分享學時的過程與經驗(ex.遇到的瓶頸....等)

再問一下

之前老師在教寫 檢查身分證號碼 的程式

我好學不倦(迷:屁喇)就問老師能否寫的出來

回答可以,但比較麻煩 .

真的有很麻煩嗎0.0 各位前輩指導一下芭

感謝~

鏈接文章
分享到其他網站

問題二看不大懂。

學C語言唷,

大一上的程式課程上就是C語言...

只要有持續的練習的話算是滿容易的,

書的話我會推薦C How to program,

它寫的很清楚、包括一些容易犯的錯誤都一一列出。

只要有確實的閱讀書籍、

加上持續的程式練習,

我想很快就能上手的=)

鏈接文章
分享到其他網站
我是用Dev-C++編寫的

剛學大概五天...

各位前輩分享學時的過程與經驗(ex.遇到的瓶頸....等)

再問一下

之前老師在教寫 檢查身分證號碼 的程式

我好學不倦(迷:屁喇)就問老師能否寫的出來

回答可以,但比較麻煩 .

真的有很麻煩嗎0.0 各位前輩指導一下芭

感謝~

的確可以

但你要知道他的計算公式是什麼

才能知道怎麼寫

公式如下:

http://zh.wikipedia.org/w/index.php?title=%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89&variant=zh-tw#.E7.B7.A8.E8.99.9F.E8.A6.8F.E5.89.87

http://blog.sina.com.tw/aron01234/article.php?pbgid=49665&entryid=575386

http://excellentc.cs.pu.edu.tw/certificate_programing/B/B-1.htm

程式碼:(Javascript)

function checkid(var divElement)
{
var chksum;
var nowiid = document.getElementById(divElement).value;
var nowiid1 = nowiid.toLowerCase();
var patten = /^[a-zA-Z][12][0-9]{8}$/;
var h = "abcdefghjklmnpqrstuvxywzio";
if(patten.test(nowiid1)){
var y = 10 + h.indexOf( nowiid1.substring(0,1) );
chksum = (y-(y%10))/10+(y%10)*9;
for(var i=1;i<9;i++)
chksum += nowiid1.substring(i,i+1)*(9-i);
chksum = (10-chksum%10)%10;
if( chksum == nowiid1.substring(9,10) ){
return true;
}
}
return flase;
}

程式碼:(PHP)

function checkid($id)
{
if(empty($id))
return false;
else if(!eregi("[a-zA-Z][12][0-9]{8}$",$id))
return false;
else{
$str = "abcdefghjklmnpqrstuvxywzio";
$str1 = "ABCDEFGHJKLMNPQRSTUVXYWZIO";
if(strpos($str,$id{0}) !== false)
$sum = intval(strpos($str,$id{0})) + 10;
else
$sum = intval(strpos($str1,$id{0})) + 10;
$sum = ($sum-($sum % 10))/10 + ($sum % 10)*9;
for($i=1;$i<9;$i++)
$sum += intval($id{$i})*(9-$i);
$sum = (10 - $sum % 10) % 10;
if($sum != intval($id{9}))
return false;
}
return true;
}

以上程式碼版權由j100002ben所有,翻印必究。

鏈接文章
分享到其他網站
問題二看不大懂。

學C語言唷,

大一上的程式課程上就是C語言...

只要有持續的練習的話算是滿容易的,

書的話我會推薦C How to program,

它寫的很清楚、包括一些容易犯的錯誤都一一列出。

只要有確實的閱讀書籍、

加上持續的程式練習,

我想很快就能上手的=)

謝謝學長的推建和分享!!

鏈接文章
分享到其他網站
公式如下:

http://zh.wikipedia.org/w/index.php?title=%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89&variant=zh-tw#.E7.B7.A8.E8.99.9F.E8.A6.8F.E5.89.87

http://blog.sina.com.tw/aron01234/article.php?pbgid=49665&entryid=575386

http://excellentc.cs.pu.edu.tw/certificate_programing/B/B-1.htm

程式碼:(Javascript)

function checkid(var divElement)
{
var chksum;
var nowiid = document.getElementById(divElement).value;
var nowiid1 = nowiid.toLowerCase();
var patten = /^[a-zA-Z][12][0-9]{8}$/;
var h = "abcdefghjklmnpqrstuvxywzio";
if(patten.test(nowiid1)){
var y = 10 + h.indexOf( nowiid1.substring(0,1) );
chksum = (y-(y%10))/10+(y%10)*9;
for(var i=1;i<9;i++)
chksum += nowiid1.substring(i,i+1)*(9-i);
chksum = (10-chksum%10)%10;
if( chksum == nowiid1.substring(9,10) ){
return true;
}
}
return flase;
}

程式碼:(PHP)

function checkid($id)
{
if(empty($id))
return false;
else if(!eregi("[a-zA-Z][12][0-9]{8}$",$id))
return false;
else{
$str = "abcdefghjklmnpqrstuvxywzio";
$str1 = "ABCDEFGHJKLMNPQRSTUVXYWZIO";
if(strpos($str,$id{0}) !== false)
$sum = intval(strpos($str,$id{0})) + 10;
else
$sum = intval(strpos($str1,$id{0})) + 10;
$sum = ($sum-($sum % 10))/10 + ($sum % 10)*9;
for($i=1;$i<9;$i++)
$sum += intval($id{$i})*(9-$i);
$sum = (10 - $sum % 10) % 10;
if($sum != intval($id{9}))
return false;
}
return true;
}

以上程式碼版權由j100002ben所有,翻印必究。

謝謝學長!等我學更多後再來挑戰!

鏈接文章
分享到其他網站
  • 4 weeks later...

身份證示別

身份證檢查原則:

1.格式:共有十位,第一位為大寫英文字母,後九位為數字。

L1 D1 D2 D3 D4 D5 D6 D7 D8 D9

2.檢查辦法:

字母L1由下表中,找到其代號兩位,令其為X1、X2,X1為十位數,X2為個位數。

字母 A B C D E F G H J K L M N

代號 10 11 12 13 14 15 16 17 18 19 20 21 22

字母 P Q R S T U V X Y W Z I O

代號 23 24 25 26 27 28 29 30 31 32 33 34 35

公式 y=x1+9*x2+8*D1+7*D2+6*D3+5*D4+4*D5+3*D6+2*D7+D8+D9

3.性別判斷:D1只可為1 或 2 ,1表示男性,2表示女性

鏈接文章
分享到其他網站

下面是用Dev-C++

這是用C語言寫的

小的不才只會這樣寫(努力學習中)!!!


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
char en;//輸入的英文
int sex;//性別碼
int d[8];
char *ens[26]={"A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","X","Y","W","Z","I","O"};
int ons[26]={10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,};
int x1,x2;
int y,j;
int i,t;
char g[1],tmp[2];
printf("請輸英文代號");
scanf("%c",&en);
printf("請輸入第1個數字");
scanf("%d",&sex);
printf("請輸入第2個數字");
scanf("%d",&d[0]);
printf("請輸入第3個數字");
scanf("%d",&d[1]);
printf("請輸入第4個數字");
scanf("%d",&d[2]);
printf("請輸入第5個數字");
scanf("%d",&d[3]);
printf("請輸入第6個數字");
scanf("%d",&d[4]);
printf("請輸入第7個數字");
scanf("%d",&d[5]);
printf("請輸入第8個數字");
scanf("%d",&d[6]);
printf("請輸入第9個數字");
scanf("%d",&d[7]);
en=toupper(en);
for(i=0;i<26;i++)
{
if(ens[i][0]==en)
{
t=ons[i];
break;
}
}
itoa(t,tmp,10);
g[0]=tmp[0];
x1=atoi(g);
g[0]=tmp[1];
x2=atoi(g);
y=x1+9*x2+8*sex+7*d[0]+6*d[1]+5*d[2]+4*d[3]+3*d[4]+2*d[5]+d[6]+d[7];
j=y%10;
if (j==0)
{
printf("這是正確的身分證號碼\n");
}
else if (j>=1 &&j<=9)
{
d[7]=10-j;
printf("最後一碼為%d\n",d[7]);
}


system("PAUSE");
return 0;
}

鏈接文章
分享到其他網站

請登入後來留意見

在登入之後,您才能留意見



立即登入