編寫一個程序,要求用戶輸入一個十進制數(shù),然后分別轉換成為二進制數(shù)、八進制數(shù)和十六進制數(shù)輸出。

熱心網(wǎng)友

//沒有運行,自己運行一下#include #include void fun(int a,char *s1,int n){int pos=0;while(a!=0){if (a%n=10)s1[pos]=a%n-10+'A';//10用A表示,11用B。。。elses1[pos]=a%n-1+'1';a=a/n;pos++;}s1[pos]='\0';}int main(){int n,i;char s;scanf("%d",&n);fun(n,s,2);for (i=strlen(s)-1;i=0;i--)printf("%c",s[i]);printf("\n");fun(n,s,8);for (i=strlen(s)-1;i=0;i--)printf("%c",s[i]);printf("\n");fun(n,s,16);for (i=strlen(s)-1;i=0;i--)printf("%c",s[i]);printf("\n");}。

熱心網(wǎng)友

十進制轉換成其它進制都是采用除留取余的方法我也寫一些主要的。int s[80];int a=145,i=0;while(a=0){s[i++]=a%2;/*如果是8進制就將此循環(huán)中的2改為8即可*/a=a/2;}while(i=0)/*逆序輸出*/{printf("%d",s[i--]);}如果是16進制的話注意把大于10的數(shù)字改成相應的英文字母。