1、輸入一個int變量src和一個unsigned long變量scale。比如20和8.然后轉制函數(shù)to_anyscale()
創(chuàng)新互聯(lián)主營象山網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都app軟件開發(fā),象山h5重慶小程序開發(fā)搭建,象山網(wǎng)站營銷推廣歡迎象山等地區(qū)企業(yè)咨詢
2、取src對scale的余數(shù),判斷src是否是scale的整數(shù)倍。(標記1)如果是,進行遞歸,轉制步驟3
3、傳入的參數(shù)是2和8.此時r=2,判斷執(zhí)行putchar('0'+r).即向終端輸出字符'2'。函數(shù)回到上層(標記1)
4、此時r=4,執(zhí)行putchar('0'+4)。即向終端輸出字符'4'。函數(shù)執(zhí)行完畢。終端最終總輸出字符串“24”.即20轉換為8進制得到的是24.(2×8+4=20)
在轉置函數(shù)中,第二個循環(huán)的約束條件應該是for(n=m;n5;n++){.....}。因為轉置只是把上三角和下三角中的值調(diào)換,只用執(zhí)行上三角交換就好了,如果你把上線都交換了,那就等于沒有交換。這屬于邏輯錯誤。
正確程序如下:
void transpose(int a[5][5] )
{
int temp = 0,m,n;
for(m = 0;m 5;m++)
{
for(n = m;n 5;n++)
{
temp = a[m][n];
a[m][n] = a[n][m];
a[n][m] = temp;
}
}
}
int data;
data = a15*pow(2,15)+a14*pow(2,14)+a13*pow(2,13)...
需要增加#include math.h
方法一:
#includelt;stdio.hgt;
#includelt;math.hgt;
#includelt;string.hgt;
void xtod(char s[]);//定義轉制函數(shù)
int main()
{
char str[10];
printf("Please enter Hex number:");//輸入一個字符串
scanf("%s",str);
xtod(str);//調(diào)用轉制函數(shù)
return 0;
}
//轉制函數(shù)
void xtod(char s[])
{
int i,j,n=strlen(s);
double num[10],sum;
//以下是判斷輸入的數(shù)是否是合法的十六進制數(shù),不是就報錯并重新輸入
for(i=0;ilt;n;i++)
if(slt;igt;lt;'0'||
(slt;igt;gt;'9'slt;igt;lt;'A')||slt;igt;gt;'f'||
(slt;igt;gt;'F'slt;igt;lt;'a')||ngt;10){
printf("Error!\nPlease enter Hex number:");
scanf("%s",s);
}
//以下將輸入的字符轉換為十進制數(shù)字
for(i=0;ilt;n;i++){
if(slt;igt;gt;='0'slt;igt;lt;='9')
numlt;igt;=slt;igt;-'0';
if(slt;igt;gt;='a'slt;igt;lt;='f')
numlt;igt;=(int)slt;igt;-87;
if(slt;igt;gt;='A'slt;igt;lt;='F')
numlt;igt;=(int)slt;igt;-55;
}
//將數(shù)字轉為十進制
for(i=0,j=n-1,sum=0.0;ilt;n;
sum+=numlt;igt;*pow(16,j),i++,j--);
printf("Decimal number:%.0f\n",sum);
}
方法二、
#includelt;stdio.hgt;
void xtod(int x);//定義轉制函數(shù)
int main()
{
int i;
scanf("%x",i);//輸入一個十六進制數(shù)
xtod(i);//調(diào)用轉制函數(shù)
return 0;
}
//轉制函數(shù)
void xtod(int x)
{
printf("%d\n",x);
}
擴展資料:
①printf()函數(shù)是格式化輸出函數(shù),一般用于向標準輸出設備按規(guī)定格式輸出信息。
格式輸出,它是c語言中產(chǎn)生格式化輸出的函數(shù)(在stdio.h中定義)。用于向終端(顯示器、控制臺等)輸出字符。格式控制由要輸出的文字和數(shù)據(jù)格式說明組成。
要輸出的文字除了可以使用字母、數(shù)字、空格和一些數(shù)字符號以外,還可以使用一些轉義字符表示特殊的含義。
簡單點理解就是,在一段程序中你正確使用該函數(shù),可以在該程序運行的時候輸出你所需要的內(nèi)容。
②printf函數(shù)是一個標準庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中。但作為一個特例,不要求在使用printf函數(shù)之前必須包含stdio.h文件。
printf()函數(shù)的調(diào)用格式為:printf("lt;格式化字符串gt;",lt;參量表gt;)。
其中格式化字符串用于指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。
格式字符串是以%開頭的字符串,在%后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。
如“%d”表示按十進制整型輸出,“%ld”表示按十進制長整型輸出,“%C”表示按字符型輸出等。
非格式字符串在輸出時原樣照印,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字符串和各輸出項在數(shù)量和類型上應該一一對應。
參考資料:
百度百科——printf
#includestdio.h
#includestring.h
char trs(int i){
char c=0;
if(i/10)c=i+55;
else c=i+48;
return c;
}
main(){
char a[20];
long x,i,t,length;
scanf("%d",x);
for(i=0;x!=0;){t=x15;a[i++]=trs(t);x=x4;}
a[i]=0;
length=strlen(a);
printf("\n16進制數(shù)是:");
for(;length=0;length--)printf("%c",a[length]);
}