C语言变量输出问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 16:55:07
TC下,有如下程序:
main()
{
int a,b,x;
float y;
scanf("%d,%d",&a,&b);
y=a/b;
x=a%b;
printf("%d,%d\n",y,x); (1)
getch();
}
输出结果: 0,0
如果将(1)换成如下语句:
printf("%f,%d\n",y,x);
那么,输出结果将是: 4.000000,2
也就是我仅仅将 y 的输出变成 %d, 即会取 y 的高字节变量,所以输出由4.000000变成0,但似乎并没有影响到 x, 可为何 x 的输出也改变了呢?
呵呵,不好意思,输入值为:
18,4
楼上mlrs618所说我也曾考虑,但是我打印过几个变量的地址,并未有变化。

输入值???

你假设你的机器float和int一样大?如果float大,y“多余”的部分就会被当作第二个数(int)打印出来。

打印地址是看不出什么吧?为什么不直接查看sizeof(y),sizeof(x)呢?另,你的编译器脾气也太好了,一般都会说类型不配的。

不会吧…你输入的是多少…?

输入值都不说出来,谁帮你解决