2017-06-01 2 views
1

Wenn der GNU-Compiler inf auf unendliche Werte druckt, kann ich das auf einen anderen Ausgang ändern?Infinity-Werte in 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

Ihre eigene Funktion zum Drucken schreiben .. –

+0

FYI, brauchen Sie nicht '' für diese, da Sie nicht in diesem Header erklärt eine der Floating-Point-Funktionen aufrufen. Der '/' Divisionsoperator ist in die Sprache integriert und muss nicht deklariert werden. (Aber Sie brauchen '' wenn Sie einen Aufruf zu 'isinf()' hinzufügen.) –

Antwort

4

Sie können nicht ändern, wie ein Unendlichkeitswert gedruckt wird. Aber du kannst nachsehen und entsprechend handeln.

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

Aber das isinf Makro funktioniert nicht richtig, wenn ich es für fprintf benutze. Ich kann den Fehler nicht herausfinden: (@dbush –

+3

"funktioniert nicht richtig" bedeutet nichts. * Wie * funktioniert es nicht? Zeigen Sie Code mit Ihrem Versuch, erwartete Ausgabe und tatsächliche Ausgabe. – dbush

+1

@ shehan_sr: Da du die Antwort akzeptiert hast, vermute ich, dass du das Problem herausgefunden hast, was auch immer es war .. –