Dear 版主您好,
我有一個C語言轉型的問題,可否告訴我為什麼嗎?
#include <stdio.h> #include <math.h> int main() { int i,n=0,idx=0; int num[3]={2,3,2}; for(i=3;i>0;i--) { n=num[idx++]*((int)pow(10,i-1))+n; }
return 0;
}
當 i=3時 n=198 ,why?
此時若改為
#include <stdio.h> #include <math.h> int main() { int i,n=0,idx=0; int num[3]={2,3,2};
float f1=0.0; for(i=3;i>0;i--) {
f1=pow(10,i-1); n=num[idx++]*(int)f1+n; }
結果則為正確
i=3時 n=200
Why?
多謝您的指教
Dear 版主您好,
我有一個C語言轉型的問題,可否告訴我為什麼嗎?
#include <stdio.h>
#include <math.h>
int main()
{
int i,n=0,idx=0;
int num[3]={2,3,2};
for(i=3;i>0;i--)
{
n=num[idx++]*((int)pow(10,i-1))+n;
}
return 0;
}
當 i=3時 n=198 ,why?
此時若改為
#include <stdio.h>
#include <math.h>
int main()
{
int i,n=0,idx=0;
int num[3]={2,3,2};
float f1=0.0;
for(i=3;i>0;i--)
{
f1=pow(10,i-1);
n=num[idx++]*(int)f1+n;
}
return 0;
}
結果則為正確
i=3時 n=200
Why?
多謝您的指教
:)