3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個贊
#include<stdio.h>
#include<string.h>
#include<math.h>
/************************
*函數(shù):convert*
*功能:十六進(jìn)制轉(zhuǎn)十進(jìn)制*
************************/
void conver(char arr[])
{
int i,j=0,k=0,sum=0,n=strlen(arr);
int num[100];
for(i=0;i<n;i++)
{
switch(arr<i>)
{
case'A':num[j++]=10;
break;
case'B':num[j++]=11;
break;
case'C':num[j++]=12;
break;
case'D':num[j++]=13;
break;
case'E':num[j++]=14;
break;
case'F':num[j++]=15;
break;
default:num[j++]=(int)(arr<i>-'0');
break;
}
}
for(i=n-1;i>=0;i--)
sum+=num<i>*pow(16,n-1-i);
printf("轉(zhuǎn)換結(jié)果:\n%d",sum);
}
int main()
{
char arr[10];
printf("請輸入十六進(jìn)制數(shù):\n");
gets(arr);
conver(arr);
return 0;
}
擴(kuò)展資料:
return 0代表程序正常退出。return是C++預(yù)定義的語句,它提供了終止函數(shù)執(zhí)行的一種方式。當(dāng)return語句提供了一個值時,這個值就成為函數(shù)的返回值。
return語句用來結(jié)束循環(huán),或返回一個函數(shù)的值。
1、return 0,說明程序正常退出,返回到主程序繼續(xù)往下執(zhí)行。
2、return 1,說明程序異常退出,返回主調(diào)函數(shù)來處理,繼續(xù)往下執(zhí)行。return 0或return 1對程序執(zhí)行的順序沒有影響,只是大家習(xí)慣于使用return(0)退出子程序而已。
總結(jié)
return是C++預(yù)定義的語句,它提供了終止函數(shù)執(zhí)行的一種方式。當(dāng)return語句提供了一個值時,這個值就成為函數(shù)的返回值.
說到return,有必要提及主函數(shù)的定義,下面是從網(wǎng)絡(luò)上找到的資料,好好消化吧,對了解主函數(shù)中返回值的理解有很大的幫助.
很多人甚至市面上的一些書籍,都使用了void main(),其實(shí)這是錯誤的。C/C++中從來沒有定義過void main()。
C++之父Bjarne Stroustrup在他的主頁上的FAQ中明確地寫著The definition void main(){/*...*/}is not and never has been
C++,nor has it even been C.(void main()從來就不存在于C++或者C)。下面我分別說一下C和C++標(biāo)準(zhǔn)中對main函數(shù)的定義。
在C89中,main()是可以接受的。Brian W.Kernighan和Dennis M.Ritchie的經(jīng)典巨著The C programming Language 2e(《C程序設(shè)計(jì)語言第二版》)用的就是main()。不過在最新的C99標(biāo)準(zhǔn)中,只有以下兩種定義方式是正確的:
int main(void)
int main(int argc,char*argv[])
當(dāng)然,我們也可以做一點(diǎn)小小的改動。例如:char*argv[]可以寫成char**argv;argv和argc可以改成別的變量名(如intval和charval),不過一定要符合變量的命名規(guī)則。
如果不需要從命令行中獲取參數(shù),請用int main(void);否則請用int main(int argc,char*argv[])。
main函數(shù)的返回值類型必須是int,這樣返回值才能傳遞給程序的激活者(如操作系統(tǒng))。
如果main函數(shù)的最后沒有寫return語句的話,C99規(guī)定編譯器要自動在生成的目標(biāo)文件中(如exe文件)加入return 0;,表示程序正常退出。不過,我還是建議你最好在main函數(shù)的最后加上return語句,雖然沒有這個必要,但這是一個好的習(xí)慣。
注意,vc6不會在目標(biāo)文件中加入return 0;,大概是因?yàn)関c6是98年的產(chǎn)品,所以才不支持這個特性?,F(xiàn)在明白我為什么建議你最好加上return語句了吧!不過,gcc3.2(Linux下的C編譯器)會在生成的目標(biāo)文件中加入return 0;。

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個贊
#包括< stdio, h >
h#包括< math.h >
# include < string。H >
Intmain()
{
Char[10]。
Void轉(zhuǎn)換(char[]a);
Printf(“輸入十六進(jìn)制數(shù):”);
(一);輸入一個十六進(jìn)制數(shù)
轉(zhuǎn)換(a);
返回0;
}
Void轉(zhuǎn)換(char[]a)
{
Intn,I,num=0;
N=strlen(a);
對于(I = n - 1;I > = 0;我)
{
如果(a < I > > = '0' & a < I > < = '9')
Num + = (a < I > - '0') * pow (16, n - 1 - I);
否則(a < I > > = 'a' && a < I > < = 'Z')
Num + =(10 +(<我> - a)) *戰(zhàn)俘(16 n - 1 - I);
否則(a < I > > = 'a' && a < I > < = 'z')
Num + =(10 +(<我> - a)) *戰(zhàn)俘(16 n - 1 - I);
}
Printf(“將小數(shù)轉(zhuǎn)換為:”);
Printf("%d",num);
}
擴(kuò)展資料:
函數(shù)的作用是:從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)中讀取一個字符串,直到回車結(jié)束。但是回車不屬于這個字符串。調(diào)用格式為(s);其中s是字符串變量(字符串?dāng)?shù)組名或字符串指針)。
gets(s)函數(shù)與scanf(“%s”,s)類似,但不完全相同。對字符串輸入使用scanf("%s",s)函數(shù)的問題是,如果輸入了空格,則認(rèn)為輸入字符串是完整的。

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個贊
首先解釋你的函數(shù)部分 exchange(char a[]):
語句 if((a[i]>='0')&&(a[i]<='9')) n=n*16+a[i]-'0';
因?yàn)?6進(jìn)制的整數(shù)基數(shù)位為0,1,2***,9,A,B,C,D,E,F總共16個字符,從10-15為字符型(字符部分不區(qū)分大小寫)。因此要進(jìn)行數(shù)制轉(zhuǎn)換就首先要將字符轉(zhuǎn)換成對應(yīng)的數(shù)據(jù),即將字符后自帶的 \0字符去掉。
flag和flag1的作用是標(biāo)記數(shù)據(jù)轉(zhuǎn)換是否正常進(jìn)行
添加回答
舉報