第一種取巧 scanf("%1d%1d%1d%1d", a,b, c, d) ;就是用abcd分別儲存它的位數(shù)。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注網(wǎng)站設(shè)計制作、成都網(wǎng)站制作、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),買鏈接,廣告投放為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
'\0'
。
例:
定義一個字符數(shù)組長度為100,而實際有效字符只有40個,為了測定字符串的實
際長度,C
語言規(guī)定了一個“字符串結(jié)束標志”,以字符'\0’代表。如果有一個字
符串,其中第10個字符為'\0',則此字符串的有效字符為9個。也就是說,在遇到
第一個字符'\0'時,表示字符串結(jié)束,由它前面的字符組成字符串。
系統(tǒng)對字符串常量也自動加一個'\0'作為結(jié)束符。例如"C
Program”共有9個字
符,但在內(nèi)存中占10個字節(jié),最后一個字節(jié)'\0'是系統(tǒng)自動加上的。(通過sizeof()
函數(shù)可驗證)
//搞定了,錯誤標志在后面
#include
stdio.h
int
main(void)
{
int
id[18];//這里初始化時不應(yīng)為空,要么char
id[18]={0};或者直接char
id[18];
//還有,身份證號碼是數(shù)字,所以應(yīng)該是int不是char
int
i,sum=0;
printf("Please
input
indentity
card
number\n");
for
(i=0;i=16;i++)
//for
(i=0;i16;i++)后面有
id[16]*=2;,所以這里要輸入id[16];
{
scanf("%d,",id[i]);
}
//輸入是每個數(shù)字用逗號隔開
id[0]*=7;
id[1]*=9;
id[2]*=10;
id[3]*=5;
id[4]*=8;
id[5]*=4;
id[6]*=2;
id[7]*=1;
id[8]*=6;
id[9]*=3;
id[10]*=7;
id[11]*=9;
id[12]*=10;
id[13]*=5;
id[14]*=8;
id[15]*=4;
id[16]*=2;
for
(i=0;i=16;i++)
{
sum+=id[i];
}
sum%=11;
switch(sum)
{
case
0:id[17]=1;break;
case
1:id[17]=0;break;
case
2:id[17]='x';break;
case
3:id[17]=9;break;
case
4:id[17]=8;break;
case
5:id[17]=7;break;
case
6:id[17]=6;break;
case
7:id[17]=5;break;
case
8:id[17]=4;break;
case
9:id[17]=3;break;
case
10:id[17]=2;break;
}
printf("%d",id[17]);//求的是最后一位
return
0;
}
求最后數(shù)組最后一位可以用sizeof函數(shù)
如果是a[10]的就是:
解釋就是直接用sizeof檢查數(shù)組a的內(nèi)存大?。ㄒ宰止?jié)為單位),減去1(因為數(shù)組是從0開始)就可以得到數(shù)組最后一個值。
所以,i=sizeof(數(shù)組名)/sizeof(數(shù)組類型) -1;
可以以字符串的形式將小數(shù)存儲起來,然后輸出,源代碼如下,不知道能不能解決你的問題:
#include stdio.h
#include malloc.h
void main()
{
char *a;//用以存儲輸入的小數(shù)
char ch;
int i=0;
int j=0;
a=(char*)malloc(sizeof(char));
printf("請輸入一個小數(shù),以回車換行結(jié)尾:\n");
while ((ch=getchar())!='\n')//將小數(shù)存儲起來,可以用a尋址
{
a[i]=(char)malloc(sizeof(char));
a[i++]=ch;
}
a[i]='\0';//小數(shù)結(jié)束標志
i=0;
while (a[i++]!='.')
{
if(a[i]=='\0')
{
printf("輸入為非小數(shù)\n");
getchar();
return;
}
continue;//可以不要這條語句
}
while (a[i++]!='\0')//統(tǒng)計共有多少位小數(shù)
{
j++;
}
printf("小數(shù)最后一位數(shù)字為:%d\t共有小數(shù)[%d]位\n",a[i-2]-'0',j);//其實可以%c與a[i-2]對應(yīng)的
getchar();
}
char str[]="Lloyd2";
int l = strlen(str);
//這里是獲得這個字符串的長度,長度為6
//通過長度,我們可以獲取到他的最后一個字符
//由于數(shù)組下標是從0開始的,所以數(shù)組下標的最大值始終要比長度小1
//那這個字符串的最后一個字符就是
char c = str[l-1];
文章標題:c語言最后一位檢驗函數(shù) c語言求最后三位數(shù)值
文章起源:http://chinadenli.net/article14/doddgde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、域名注冊、網(wǎng)站維護、網(wǎng)站策劃、Google、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)