2017-06-01 85 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:既然你已经接受了答案,我想你已经找出了问题,不管它是什么。 –