3数求和的两种方法

【问题描述】

求以下三正整数的和,保留2位小数 1~a之和 1~b的平方和 1~c的倒数和。

【输入形式】

a b c

【输出形式】

sum=xx.xx
【样例输入】

100 50 10

【样例输出】

sum=47977.93


注意要点:

1)输出要保留两位小数,有精度要求,所以定义时要注意;

2)输出形式中为sum=xx.xx,所以代码应为printf("sum=%d",sum);

3)分析题目,明晰题意是分别要求三个的和,此处用两个方法可以分别解决,第一种是直接在主函数中暴力解决,还一种是用函数解决,可以多次利用这一个函数;

4)有多处运用多种未知数,需要赋予初始值!!


答案1:暴力解决

#include<stdio.h>
#include<math.h>
int main ()
{
int a,b,c,sum1=0,i,j,k;
double sum2=0,sum3=0,item=1,sum=0;
scanf("%d%d%d",&a,&b,&c);
for(i=1;i<=a;i++)
{
sum1=sum1+i;
}
for(j=1;j<=b;j++)
{
sum2=sum2+pow(j,2);
}
for(k=1;k<=c;k++)
{
item=1.0/k;
sum3=sum3+item;
}
sum=sum1+sum2+sum3;
printf("sum=%.2f",sum);
return 0;

}

注意:字母一定要一一对应,不要出现在j或k的循环中还用i来表示,这样是错误的,要细心!!!

ps:此处也可以不用数学函数,在第二个循环中可以写成sum=sum+j*j;这样也可以,数学函数只是一种方法。


答案2:函数法(如果一个代码中多次需要用到某一循环,则可以用这个办法)

#include<stdio.h>
int f(int n);
int A(int x);
double B(int h);
int main()
{
 int a,b,c;
 double sum=0,sum1=0,sum2=0,sum3=0;     //千万不能忘记给未知数赋初始值
 scanf("%d%d%d",&a,&b,&c);
 sum1=f(a);
 sum2=A(b);
 sum3=B(c);
 sum=sum1+sum2+sum3;
 printf("%.2f",sum);
 return 0;
}

int f(int n)
{
 int a,sum1=0,i;
 a=n;
 for(i=1;i<=a;i++)
 {
 sum1=sum1+i;
 }
  return sum1;

}

int A(int x)
{
int b,j,sum2=0;
b=x;
for(j=1;j<=b;j++)
{
sum2=sum2+j*j;   //也可以采用数学函数法
}
return sum2;
}

double B(int h)
{
int c,k;
double sum3=0;
c=h;
for(k=1;k<=c;k++)
{
sum3=sum3+1.0/k;
}
return sum3;

}

注意:写程序讲究的是简洁而正确,此处的函数法不支持在此处运用,此处的示范,只是为了解和函数,如果一个程序中需要多次运用同一个函数,则运用函数法,来减少代码量,减少内存储存!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值