知識社群登入
位置: 艾鍗學院 Blog > 專業論壇 > 討論
C語言的程式問題
1樓

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?


多謝您的指教

2樓

小菜鳥, 

   你應該說的更明確一些, 如要
   這是在進行什麼樣的公式計算 ? (也許是你公式寫錯了呢)
   或你想要得什麼結果, 可是結果卻是這個?why?
   或你明確點出來, 你改了什麼,導致結果為對的或錯的? why?


  我想愈明碓的問題, 別人找回答也才快.. 
  才能快速對你的問題來討論或解答



  

 
3樓
嘗試用 gdb trace bug 吧
:)