最近在PAT甲级碰到个问题:
本来在最后想输出一个double型变量而不是int型变量ansid,找了好久才找到问题出在这,后来自己简单模拟了一下这个问题,如下:
#include <cstdio>
int main(){
int n = 5, m = 10;
printf("%d %d", n, m);
return 0;
}
此时是正常情况:
再然后。。。
#include <cstdio>
int main(){
int n = 5, m = 10;
printf("%d %.1f", n, m);
return 0;
}
得到结果:
这里我还能理解,n正常显示,m因为使用错误导致显示错误的值。
然后又试了下:
#include <cstdio>
int main(){
int n = 5, m = 10;
printf("%.1f %d", n, m);
return 0;
}
得到的结果:
发现因为n的错误print写法导致了本该正常显示的m显示了错值。。。
这是为啥呢?