当i
是整数或小数点后没有非零位时,该程序应该在小数点后输出零位它适用于所有的情况,而不是最后一个。有人能帮我修一下吗?
代码
#include <stdio.h>
#include<math.h>
int main()
{
double i,j,k;
for(i=0;i<=2;i=i+0.2)
{
k=3;
j=i+1;
while(k--)
{
if(fmod(i,1)==0) printf("I=%.0lf J=%.0lf\n",i,j);
else printf("I=%.1lf J=%.1lf\n",i,j);
j++;
}
}
}
这是ideone sample execution
最佳答案
根据您的精度级别,您可以使用下面的%g或%lg来打印最短的可表示项。我用的是0.5码。
#include <stdio.h>
#include<math.h>
int main()
{
double i,j,k;
for(i=0;i<=2;i=i+0.2)
{
k=3;
j=i+1;
while(k--)
{
if(fmod(i,1)==0)
{
printf("I=%.5lg J=%.5lg\n",i,j);
}
else
{
printf("I=%.5lg J=%.5lg\n",i,j);
}
j++;
}
}
}