2017-04-13 3 views
0
#include<stdio.h> 
int main() 
{ 
int i=4; 
double d=4.0; 

int ii; 
double dd; 

scanf("%d",&ii); 
scanf("%lf",&dd); 

printf("%d",i+ii); 
printf("%lf",(d+dd)); 
return 0; 

} 

ich bin Eingabe 12 für Ganzzahl und 4.0 für Doppel. Ich bekomme nur als 168.00000 ausgegeben, aber es gibt zwei print-Anweisung. Ich weiß nicht warum?Warum bekomme ich diese Ausgabe (Ganzzahl und doppelte Mehrdeutigkeit)?

+2

versuchen 'printf ("% d", i + ii);' -> 'printf ("% d \ n", i + ii); ' – BLUEPIXY

+3

' 12 + 4 = 16' und '4.0 + 4.0 = 8.0' also' 168.0' – NathanOliver

Antwort

1

Dieser Ausgang sollte wie

16 8.00000 

angesehen werden, wenn Sie ein Leerzeichen zwischen den beiden Zahlen einfügen wird.

Zum Beispiel

printf("%d ",i+ii); 
      ^^ 
printf("%lf",(d+dd)); 

Oder man könnte die neue Linie Charakter

printf("%d\n",i+ii); 
      ^^ 
printf("%lf\n",(d+dd)); 
      ^^ 

In diesem Fall legen Sie werden Sie

16 
8.00000 

Berücksichtigen Sie erhalten, die mit dem C nach Die Standardfunktion main ohne Parameter muss wie

012 deklariert werden
int main(void) 
     ^^^^^^ 
2

Das Ergebnis, das Sie sehen, wird vollständig erwartet. Sie verpassen wahrscheinlich die Tatsache, dass Sie in Ihren printf-Anweisungen keine neue Zeile eingefügt haben.

Folgen Sie Ihrer Logik, nehmen Sie 12 und fügen Sie 4.0 hinzu. Das Ergebnis ist 16, die Sie ausdrucken. Das bringt uns hier:

16 

Sie nächsten Druck eine Floating-Point-of dd+d. Unter der Annahme von 4.0 drucken Sie jetzt eine 8.000 aus. diejenigen zusammen setzen (da es keine Newline war) Sie am Ende mit:

168.000 
Verwandte Themen