我寫了這個函數來反轉一個數字。我將擁有高達2^32的測試用例。我需要函數來返回無符號整數。我的問題是:爲什麼不打印?這個C程序爲什麼不打印unsigned int?
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
unsigned int reverse(unsigned int a);
int main(){
printf("%u\n",reverse(987654321));
//printf("%ui\n",reverse(987654321)); //this wont work either
return 0;
}
unsigned int reverse(unsigned int a)
{
int temp=0;
while(a>0)
{
temp=10*temp+a%10;
a/=10;
}
return temp;
}
是的,我沒有忘記原型...忍耐與我我最近一直在做Java和Lisp。但是,我的編譯器不斷給我一個警告,說我在格式字符串中有多餘的字符。它也做到這一點,如果我有型「長長整型」,我在格式字符串,我也嘗試過使用「%LLI%。
您是否收到任何編譯器錯誤或警告? –
它適用於我(編譯和測試)。建議你在'reverse()'後加'main()'或爲'reverse()'添加一個前向聲明。 – abligh
你會得到什麼結果或問題? – aschepler