最近做的一道题,发现有些小细节,记录一下
输入格式
a b c
输出格式
1+2+...+a + 1^2+2^2+...+b^2 + 1/1+1/2+...+1/c
可以知道总共需要做三个循环,这题细节就在于求1~c的倒数和,代码如下:
#include<stdio.h>
int main()
{
int a,b,c;
double sum=0.00,i;
scanf("%d%d%d",&a,&b,&c);
for(i=1;i<=a;i++)
{
sum+=i;
}
for(i=1;i<=b;i++)
{
sum+=i*i;
}
for(i=1.0;i<=c;i++)
{
sum+=1/i;
}
printf("%0.2lf",sum);
return 0;
}
可以看到i是double类型的,起初我也是弄个int类型的,结果没有小数
这是因为在a/b这么一个表达式中,a或b中一个数为浮点数,其结果才会为浮点数,否则小数点后面的数会被自动忽略