請撰寫遞回函式,以十六進制形式輸出自然數。
函式原型
void PrintHex(int num, int cap);
說明:引數 num 為待輸出的自然數,cap 為大寫標記。函式將自然數 num 以十六進制形式的輸出,以字母 A ~ F 或 a ~ f 表示為 10 ~ 15 的數字。若 cap 為1(真),則以采用大寫字母,否則采用小寫字母。
裁判程式
#include <stdio.h>
void PrintHex(int num, int cap);
int main()
{ int n, c; scanf("%d%d", &n, &c);
PrintHex(n, c);
putchar('\n');
return 0;
}
/* 你提交的代碼將被嵌在這里 */
測驗資料
輸入樣例 輸出樣例
0 0 0
37 0 25
936 1 3A8
2147483647 0 7fffffff
要求:不得使用回圈陳述句,不得呼叫 printf 函式。
uj5u.com熱心網友回復:
void PrintHex(int num, int cap){
int c = num % 16;
int r = num / 16;
if( r != 0 ) PrintHex(r, cap);
if ( cap )
printf("%x", c);
else
printf("%X", c);
};
uj5u.com熱心網友回復:
哦,不讓用printf那就把那一句替換成putchar, 只不過要自己做一下轉化了
void PrintHex(int num, int cap)
{
int c = num % 16;
int r = num / 16;
if( r != 0 ) PrintHex(r, cap);
if ( c < 10 )
putchar(c + '0' );
else
putchar(cap? c+'A'-10 : c+'a'-10 );
};
uj5u.com熱心網友回復:
愛你吆,對了你多了個分號轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/81076.html
標籤:C語言
上一篇:這是什么錯誤呀
下一篇:關于PJSIP編譯的問題
