又是一道不写好精度就搞不了的题
输入
a b c
输出
1+2+…+a + 12+22+…+b^2 + 1/1+1/2+…+1/c
样例输入
100 50 10
样例输出
47977.93
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
源错误程序:
#include<stdio.h>
int main()
{
int a,b,i,a1=0,b1=0;
double c=0,c1=0,sum=0;
scanf("%d",&a);
scanf("%d",&b);
scanf("%lf",&c);
a1=((1+a)*a)/2;
for(i=1;i<=b;i++)
b1+=i*i;
for(i=1;i<=c;i++)
{
c1+=1.0/c;
}
sum=a1+b1+c1;
printf("%0.2lf",sum);
return 0;
}
一直都将tm的后面的当成int型来算,
我也不知道为什么。
(知道了。。原来有一个循环中,将常数带进去了。。。。)
修改成:
#include<stdio.h>
int main()
{
int a,b,i,a1=0,b1=0;
double c=0,c1=0,sum=0;
scanf("%d",&a);
scanf("%d",&b);
scanf("%lf",&c);
a1=((1+a)*a)/2;
for(i=1;i<=b;i++)
b1+=i*i;
for(i=1;i<=c;i++)
{
c1+=1.0/i;
}
sum=a1+b1+c1;
printf("%0.2lf",sum);
return 0;
}