程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-這個宏調用為什麼錯了??

c語言-這個宏調用為什麼錯了??

編輯:編程綜合問答
這個宏調用為什麼錯了??

#include

#define HARMONIC_MEAN(X, Y) ( 1/((1/X+1/Y) / 2) )

int main(void)
{

printf("harmonic mean of and : %g\n", HARMONIC_MEAN(2, 3));
return 0;
}
調用錯了嗎?為什麼?

最佳回答:


error C2124: divide or mod by zero
究其原因,是因為宏定義過程中,變量默認為整型處理,才會導致0除。
把程序稍微改一改,變成:

 #define HARMONIC_MEAN(X, Y) ( 1.0/((1.0/X+1.0/Y) / 2.0) )
int main(void)
{
printf("harmonic mean of and : %f\n", double(HARMONIC_MEAN(2, 3)));
return 0;
}

就OK啦~注意數據類型哈!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved