C語言基本知識點掃盲大作戰終於到最後了,誠不負所望,這道字符串char型與int整型相互轉換的題目又讓我出了一把汗誒
先上題目
輸入是字符串,將其中的char型數字乘以一定的權值,計算時如果對char字符強制類型轉換也只會得到對應的ASCII碼,如何將它對應的int型數字得到就是最重要的問題。
但其實不難想到,每一位數字範圍都在0~9之間,一是可以利用簡單的一位十進制數與ASCII碼的轉換關係去求
http://wenku.baidu.com/link本來想找一張清晰的圖看到了這份完整的碼錶
挑選一些常用的截圖保存了hhhhhhh
另一種方法就是利用相對差來計算,用表達式表達就是,0~9之間的整型數字與字符型變量的變換 int=char- '0' char=int+'0' [QAQ減號太短實在受不了.......
char型數據1yte(字節)8it,數據範圍在-128~127
常用與運算存儲的常常是unsigned char型數據,1字節,範圍在0~255
嗯。對於這道題總結就是第一次50分是因爲沒記清楚題目把識別碼爲X的情況忘掉了。。。。時間不多了要細心啊
上代碼
#include<stdio.h>
int main()
{
char m1='0';
char m2='-';
char a[14];
scanf("%s",&a);
int temp=0;
int i,j;
int k=0;
for(i=0;i<14;i++)
{
if(a[i]==m2)
continue;
else
{
k++;
if(k!=9)
{
j=a[i]-'0';
temp+=(j*k);
}
else
{
j=a[i]-'0';
temp+=(j*k);
break;
}
}
}
temp=temp%11;
j=a[12]-'0';
if(temp==j)
printf("Right\n");
else if(temp==10)
{
if(a[12]=='X')
printf("Right\n");
else
{
a[12]='X';
printf("%s",a);
}
}
else
{
a[12]=temp+'0';
printf("%s",a);
}
return 0;
}
Good luck to myself !