2017-06-01 126 views
1

當GNU編譯器在無限值上打印inf時,我可以將其更改爲不同的輸出嗎?gcc中的無窮大值

#include<stdio.h> 
{ 
    float runs = 40.0; 
    float wickets = 0.0; 

    printf("Average = %.2f(/*This is the place where I want to print NA 
    instead of inf*/)", runs/wickets); 

    return 0; 
} 
+1

自己寫的函數打印.. –

+0

僅供參考,你不需要''對於這一點,因爲你不調用任何在頭部聲明浮點功能。 '/'除法運算符是內置於語言中的,不需要聲明。 (但是如果你給'isinf()'添加一個調用,你將需要''。) –

回答

4

您無法更改無限值如何打印。但是你可以檢查它並採取相應的行動。

double avg = runs/wickets; 
if (isinf(avg)) { 
    printf("Average = NA\n"); 
} else { 
    printf("Average = %.2f\n", avg); 
} 
+0

但是這個宏在fprintf中使用時不能正常工作。我無法弄清楚錯誤:(@dbush –

+3

「工作不正常」並不意味着什麼*它如何工作?顯示一些代碼,包括您的嘗試,預期輸出和實際輸出 – dbush

+1

@ shehan_sr:既然你已經接受了答案,我想你已經找出了問題,不管它是什麼。 –