每天十分鐘,C語言一點通-n進位轉換為十進位
Hello,小夥伴們,相信很多朋友剛開始接觸的編程語言就是C啦,當然在開始學習的時候最頭疼的就是進位轉換,是不是很難理解?不過沒關係,你可以用下面的程序進行操作演算。
那麼是如何實現的呢?
具體代碼如下,我做了注釋方便你學習哦,你可以將圖片保存下來慢慢研究,遇到問題也可以詢問我哦!
#include
#include
#include
#pragma warning(disable:4996)
int main()
{
long t1;
int i, n, t, t3;
char a[100];
printf("please input a number string:
");
gets(a); /*輸入n進位數存到數組a中*/
strupr(a); /*將a中的小寫字母轉換成大寫字母*/
t3 = strlen(a); /*求出數組a的長度*/
t1 = 0; /*為t1賦初值0*/
printf("please input n (2or8or16):
");
scanf("%d", &n); /*輸入進位數*/
for (i = 0;i
{
if (a[i] - "0" >= n&&a[i] = n) /*判斷輸入的數據和進位數是否相符*/
{
printf("data error!!"); /*輸出錯誤*/
exit(0); /*退出程序*/
}
if (a[i] >= "0"&&a[i]
t = a[i] - "0"; /*求出該數字賦給t*/
else if (n >= 11 && (a[i] >= "A"&&a[i]
t = a[i] - "A" + 10; /*求出字母所代表的十進位數*/
t1 = t1*n + t; /*求出最終轉換成的十進位數*/
}
printf("the decimal is %ld
", t1); /*將最終結果輸出*/
system("pause"); /*可以在任意時刻真正的暫停程序*/
}
需要說明的是,我用的Visual Studio2017編寫的C語言程序,如果你也用和我一樣的編譯器,你可能會遇到這種情況
C4996 『strcpy』等等
解決的辦法就是在main前面加
#pragma warning(disable:4996)
有什麼問題也可以問我哦
下面是驚喜時刻,每日一題!
如何將十進位轉換為十六進位,如何用最簡單的代碼實現!!!
TAG:Python松 |