當前位置:編程學習大全網 - 編程語言 - 寫壹個函數,輸入十六進制數,輸出相應的十進制數

寫壹個函數,輸入十六進制數,輸出相應的十進制數

方法壹:

#include<stdio.h>

#include<math.h>

#include<string.h>

void xtod(char s[]);//定義轉制函數

int main()

{

char str[10];

printf("Please enter Hex number:");//輸入壹個字符串

scanf("%s",str);

xtod(str);//調用轉制函數

return 0;

}

//轉制函數

void xtod(char s[])

{

int i,j,n=strlen(s);

double num[10],sum;

//以下是判斷輸入的數是否是合法的十六進制數,不是就報錯並重新輸入

for(i=0;i<n;i++)

if(s<i><'0'||

(s<i>>'9'&&s<i><'A')||s<i>>'f'||

(s<i>>'F'&&s<i><'a')||n>10){

printf("Error!\nPlease enter Hex number:");

scanf("%s",s);

}

//以下將輸入的字符轉換為十進制數字

for(i=0;i<n;i++){

if(s<i>>='0'&&s<i><='9')

num<i>=s<i>-'0';

if(s<i>>='a'&&s<i><='f')

num<i>=(int)s<i>-87;

if(s<i>>='A'&&s<i><='F')

num<i>=(int)s<i>-55;

}

//將數字轉為十進制

for(i=0,j=n-1,sum=0.0;i<n;

sum+=num<i>*pow(16,j),i++,j--);

printf("Decimal number:%.0f\n",sum);

}

方法二、

#include<stdio.h>

void xtod(int x);//定義轉制函數

int main()

{

int i;

scanf("%x",&i);//輸入壹個十六進制數

xtod(i);//調用轉制函數

return 0;

}

//轉制函數

void xtod(int x)

{

printf("%d\n",x);

}

擴展資料:

①printf()函數是格式化輸出函數,壹般用於向標準輸出設備按規定格式輸出信息。

格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。用於向終端(顯示器、控制臺等)輸出字符。格式控制由要輸出的文字和數據格式說明組成。

要輸出的文字除了可以使用字母、數字、空格和壹些數字符號以外,還可以使用壹些轉義字符表示特殊的含義。

簡單點理解就是,在壹段程序中妳正確使用該函數,可以在該程序運行的時候輸出妳所需要的內容。

②printf函數是壹個標準庫函數,它的函數原型在頭文件“stdio.h”中。但作為壹個特例,不要求在使用printf函數之前必須包含stdio.h文件。

printf()函數的調用格式為:printf("<格式化字符串>",<參量表>)。

其中格式化字符串用於指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。

格式字符串是以%開頭的字符串,在%後面跟有各種格式字符,以說明輸出數據的類型、形式、長度、小數位數等。

如“%d”表示按十進制整型輸出,“%ld”表示按十進制長整型輸出,“%C”表示按字符型輸出等。

非格式字符串在輸出時原樣照印,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字符串和各輸出項在數量和類型上應該壹壹對應。

參考資料:

百度百科——printf

  • 上一篇:微服務架構實踐 - 妳只懂docker與spring boot就夠了嗎?
  • 下一篇:Cocos2dx的http請求流程,lua版
  • copyright 2024編程學習大全網