#include <stdio.h>
void func(int x,int k);
int main()
{
int x,k;
scanf("%d%d",&x,&k); //輸入十進制x,轉化進制k
func(x,k);
return 0;
}
void func(int x,int k)
{
int a[20],i=0;
while(x/k!=0) //十進制轉化為k進制,用到除k取余法
{
i++;
a[i] = x%k; // 將余數存于陣列中
x = x/k;
}
//a[++i] = x; //最后一個余數
for(;i>=0;i--) //余數依次倒序輸出即為對應的進制數
/*{
if(a[i]>9)
printf("%c",a[i] + 55); //將大于9的數轉化為對應的大寫字母,用到ASCII碼 A的ASCII碼為65
else
printf("%d",a[i]);
} */
printf("%ld\n",a[i-1]);
}
為什么注釋里內容存在時,它的編譯才是正確的?
uj5u.com熱心網友回復:
如果余數是大于9,那是不是應該要把這個余數轉成一個別的字符?比如16進制,10用A表示,11用B表示等等,大于9的用字母表示。怎么把大于9的余數轉成字母,注釋里已經說明了轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/130884.html
標籤:C語言
上一篇:漢諾塔
下一篇:為什么0X44不是使用%#x
