#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,为double提供4.0。我输出只有168.00000,但有两个打印声明。我不知道为什么?
答案 0 :(得分:2)
您所看到的结果完全可以预料到。您可能会错过这样一个事实,即您没有在printf语句中包含换行符。
按照你的逻辑,你拿12并添加4.0。结果是16,您打印。这就把我们带到了这里:
16
接下来打印dd+d
的浮点数。假设4.0,你现在打印出8.000。把它们放在一起(因为没有新行)你最终得到:
168.000
答案 1 :(得分: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标准函数main,没有参数应声明为
int main( void )
^^^^^^