为什么printf无法正确显示?
//test3
//
#include <vector>
#include <math.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
double temp1;
int T;
cin>>T;
T=T*10;
vector<double> vecA;
while(T>0)
{
T--;
cin>>temp1;
vecA.push_back(temp1);
}
vector<double>::iterator iter;
iter=vecA.begin();
while(iter!=vecA.end())
{
double xa=0,ya=0,vax=0,vay=0,Ra=0;
double xb=0,yb=0,vbx=0,vby=0,Rb=0;
xa=*iter++;
ya=*iter++;
vax=*iter++;
vay=*iter++;
Ra=*iter++;
xb=*iter++;
yb=*iter++;
vbx=*iter++;
vby=*iter++;
Rb=*iter++;
double dis2=(xa-xb)*(xa-xb)+(ya-yb)*(ya-yb);
double R2=(Ra+Rb)*(Ra+Rb);
int a=0;
if(dis2==R2)
{
printf("%.3f %.3f %.3f %.3f %.3f\n",a,xa,ya,xb,yb);
continue;
}
}
return 0;
}
测试数据:
1
100 200 0 0 55
100 100 0 0 45
非常困惑,不知道printf为什么输出不正确,跟踪变量发现xa,ya,xb,yb都不是0,但是输出全是0?
//
#include <vector>
#include <math.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
double temp1;
int T;
cin>>T;
T=T*10;
vector<double> vecA;
while(T>0)
{
T--;
cin>>temp1;
vecA.push_back(temp1);
}
vector<double>::iterator iter;
iter=vecA.begin();
while(iter!=vecA.end())
{
double xa=0,ya=0,vax=0,vay=0,Ra=0;
double xb=0,yb=0,vbx=0,vby=0,Rb=0;
xa=*iter++;
ya=*iter++;
vax=*iter++;
vay=*iter++;
Ra=*iter++;
xb=*iter++;
yb=*iter++;
vbx=*iter++;
vby=*iter++;
Rb=*iter++;
double dis2=(xa-xb)*(xa-xb)+(ya-yb)*(ya-yb);
double R2=(Ra+Rb)*(Ra+Rb);
int a=0;
if(dis2==R2)
{
printf("%.3f %.3f %.3f %.3f %.3f\n",a,xa,ya,xb,yb);
continue;
}
}
return 0;
}
测试数据:
1
100 200 0 0 55
100 100 0 0 45
非常困惑,不知道printf为什么输出不正确,跟踪变量发现xa,ya,xb,yb都不是0,但是输出全是0?
...全文
相关推荐
(完整版)C语言1-7章课后作业答案.doc
答:合法的变量名有:abc123 AbC a_bc* 习题 2.4:指出变量定义哪些是正确的,哪些是不正确的,为什么?
printf()函数重定向到STM32串口输出
一、为什么需要重定向printf()函数?在STM32单片机中,串口输出的是字符型,而我们需要输出的数据是整型的。为了解决这个问题,我们需要将整型数据转换为字符型输出。
printf不打印,不显示,不输出 怎么办?什么原因?
printf不打印,不显示,不输出 怎么办?什么原因?
ADS中关于sprintf()函数无法正确显示浮点数问题的解决办法
:利用`sprintf()`函数将浮点数转换成字符串时,输出结果中的小数点无法正确显示。
KEIL下的printf
在KEIL环境下,我们通常需要自定义printf函数,因为标准的printf函数在嵌入式系统中可能无法直接使用,因为它依赖于浮点运算库和复杂的内存管理,而这在资源有限的微控制器上可能不被支持。


