pergunta:
responder:
#include<stdio.h>
int main()
{
int a,b,c,sum=0;
scanf("%d %d %d",&a,&b,&c);
for(int z=0;z<=a;z++)
{
sum=sum+z; //累加上一个的,直至加到a
}
int sum1=0;
for(int r=0;r<=b;r++)
{
sum1=sum1+(r*r); //累加上一个数,然后继续加上本次循环的数的平方
}
double sum2=0; //因为保留小数,所以用的double
for(double y=1;y<=c;y++)
{
sum2=sum2+(1/y); //同理,只需用1/y就可以实现倒数
}
double sum3=0; //因为上面有小数,总和自然也用double
sum3=sum+sum1+sum2;
printf("%.2f",sum3);
}
analisar:
Veja primeiro o tópico:
Encontre a soma dos três números a seguir, mantenha 2 casas decimais, a soma de 1~a, o quadrado de 1~b e a soma recíproca de 1~c
Na verdade, caso contrário, é buscar três somas
Uma é a acumulação de 1 para a: use um loop for simples
Um é a soma dos quadrados dos valores de 1 a b: semelhante ao loop for, basta mudar o número adicionado para o quadrado
Um é a soma recíproca de 1 a c: use 1/y para realizar o recíproco e, em seguida, use o loop for para adicionar o número anterior
Por uma questão de simplicidade e clareza, divido diretamente o problema nos três pequenos problemas acima para digitar os códigos separadamente e, em seguida, apenas adicioná-los
Esta questão vem da questão número 1015 da C Language Network