非常简单的c语言问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 04:20:06
#include <stdio.h>
void main()
{
double a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}
这个程序,输入1 1 1 后,为何返回1,-858993460,1
请问这是为什么?应该怎么改?先谢谢了。。。。

a,b,c定义的是double类型,
而你的格式控制用的是"%d",那是用于int类型的。
你应该把double改成int
或是把"%d"改成“%lf"

scanf("%f,%f,%f",&a,&b,&c);

然后输入的时候为
1,1,1就可以了

你定义的是double型scanf里应该写 %lf,printf里应该写%f或%lf

scanf(%d%d%d,&a,&b,&c);
里面的%d输入格式改为%lf

变量的定义应该和要求输入输出的格式是一致的,程序中定义的是双精度但是要求输入输出的是整型!这种是不符合规则的,所以会出现这样的结果!可以把定义时的double改为int,就可以输入1 1 1 后,为何返回1,1,1