我有一個賦值,我需要在C中打印一個整數而不使用printf,putchar等。不允許包含頭文件。沒有函數調用,除了我寫的任何東西。我有一個函數my_char我正在使用(也許是錯誤的),但它打印出一個字符。我目前有以下代碼向後打印數字。不尋找答案。只是尋找一些方向,一些幫助,也許我看着它完全錯了。在沒有Printf或任何函數的情況下在C中打印int
void my_int(int num)
{
unsigned int i;
unsigned int j;
char c;
if (num < 0)
{
my_char('-');
num = -num;
}
do
{
j = num % 10;
c = j + '0';
my_char(c);
num = num/10;
}while(num >0);
}
一種可能性是使用遞歸。還要注意,如果'num == INT_MIN'(至少在典型的2補碼機上)你的代碼將會失敗。 –
忘了提及,我很抱歉,不允許使用遞歸(我知道,令人沮喪) – CLZ828
如果從字面上不允許包含頭文件,您不能將它打印到標準輸出 - 即使是'寫'系統調用這是要使用內聯彙編訪問)在頭文件中聲明... – 2012-09-09 22:55:20