2017-04-13 39 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; 

} 

我提供输入12为整数,4.0为双。我只输出为168.00000,但有两个打印语句。我不知道为什么?为什么我得到这个输出(整数和双歧义)?

+2

尝试'printf(“%d”,i + ii);' - >'printf(“%d \ n”,i + ii);' – BLUEPIXY

+3

'12 + 4 = 16'和'4.0 + 4.0 = 8.0' so'168.0' – NathanOliver

回答

1

此输出应考虑像

16 8.00000 

只要您将插入两个数字之间的空白。

例如

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

或者你可以插入新行字符

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

在这种情况下,你会得到

16 
8.00000 

考虑到,根据到C账户不带参数的标准功能主体应声明为

int main(void) 
     ^^^^^^ 
2

您看到的结果是完全预期的。您可能会错过在printf语句中未包含换行符的事实。

遵循你的逻辑,你需要12并添加4.0。结果是16,您打印。这使我们在这里:

16 

你下一个打印的dd+d浮点。假设4.0,你现在打印出一个8.000。把它们放在一起(因为没有换行符):

168.000 
相关问题