C语言求前n项和

[C语言程序设计第四版何钦铭 颜晖 第二章练习题]

1、求1+1/2+1/3+…的前n项和 (练习2-13)

/*求1+1/2+1/3+...的前n项和*/ 
#include <stdio.h>
int main()
{
	int n,i=1;
	double sum=0;
	printf("enter n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum=sum+1.0/i;
	}
	printf("sum(%d)=%f",n,sum);
	return 0;
}

在这里插入图片描述

2、求1+1/3+1/5+…的前n项和 (练习2-14)

/*求1+1/3+1/5+...的前n项和*/ 
#include <stdio.h>
int main()
{
	int n,i=1;
	double sum=0;
	printf("enter n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum=sum+1.0/(2*i-1);
	}
	printf("sum(%d)=%f",n,sum);
	return 0;
}

在这里插入图片描述

3、求1-1/3+1/5+…-1/7+…的前n项和 (例2-8)

/*求1-1/3+1/5+...-1/7+...的前n项和*/ 
#include <stdio.h>
int main()
{
	int n,i;
	printf("enter n:");
	scanf("%d",&n);
	int flag=1,denominator=1;  
	/*flag表示第i项的符号,初始值为正;denomination表示第i项的分母,初始值为1*/ 
	double sum=0,item=1;
	for(i=1;i<=n;i++)
	{
		sum=sum+item;
		flag=-flag;
		denominator=denominator+2;
		item=flag*1.0/denominator;
		/*item表示每一项的值 */
	}
	printf("sum(%d)=%f",n,sum);
	return 0;
}

在这里插入图片描述

4、求1-1/4+1/7-1/10+1-1/13-1/16+…的前n项和 (练习2-15)

/*求1-1/4+1/7-1/10+1-1/13-1/16+...的前n项和*/ 
#include <stdio.h>
int main()
{
	int n,i;
	printf("enter n:");
	scanf("%d",&n);
	int flag=1,denominator=1;
	/*flag表示第i项的符号,初始值为正;denomination表示第i项的分母,初始值为1*/ 
	double sum=0,item=1;
	for(i=1;i<=n;i++)
	{
		sum=sum+item;
		flag=-flag;
		denominator=denominator+3;
		item=flag*1.0/denominator;
		/*item表示每一项的值 */
	}
	printf("sum(%d)=%f",n,sum);
	return 0;
}

在这里插入图片描述

[C语言程序设计第四版何钦铭 颜晖 第二章课后习题 习题2]

2、阶梯电价:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元每千瓦时;超过50千瓦时的,超出部分的用电量电价每千瓦时上调0.05元。输入用户的用电量(千瓦时),计算并输出该用户应支付的电费(元),若用电量小于0,则输出Invalid Value!
代码一:

#include <stdio.h>
int main()
{
	float x,y;
	printf("输入月用掂量x:");
	scanf("%f",&x);
	if(x>50)
	{
		y=0.53*50+(0.53+0.05)*(x-50);
		printf("该用户应支付的电费为%.2f",y);
	}
   else if((x>=0) && (x<=50))
	{
		y=0.53*x;
		printf("该用户应支付的电费为%.2f",y);
	}
	else 
	{
		printf("Invaild Value!");
	}
	
	return 0;
}

代码二:

#include <stdio.h>
int main()
{
	float x,y;
	printf("输入月用掂量x:");
	scanf("%f",&x);
	if(x>50)
	{
		y=0.53*50+(0.53+0.05)*(x-50);
		printf("该用户应支付的电费为%.2f",y);
	}
    if((x>=0) && (x<=50))
	{
		y=0.53*x;
		printf("该用户应支付的电费为%.2f",y);
	}
	if(x<0)
	{
		printf("Invaild Value!");
	}
	
	return 0;
}

实验现象:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、序列求和:输入两个正整数m和n(0<m<=n),求
在这里插入图片描述
结果保留6位小数

#include <stdio.h>
int main()
{
	int m,n,i;
	double sum;
	printf("输入两个正整数m和n:\n");
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		sum=sum+(i*i+1.0/i);
	}
	printf("%.6f",sum);
	return 0;
}

在这里插入图片描述

4、求交错序列前n项和:输入一个正数n,计算交错序列1-2/3+3/5-4/7+5/9-6/11+…的前n项和

#include <stdio.h>
int main()
{
	int n,i,flag=1;
	double sum=0;
	printf("输入一个正数n:\n");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum=sum+flag*i*1.0/(2*i-1);
		flag=-flag;
	}
	printf("%f",sum);
	return 0;
}

在这里插入图片描述

5、平方根求和:输入一个正数n,计算在这里插入图片描述
的值(表六两位小数)。可包含头文件math.h,并调用sqrt( )函数求平方根

#include <stdio.h>
#include <math.h>
int main()
{
	int n,i;
	double sum=0;
	printf("输入一个正整数n:\n");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum=sum+sqrt(i);
	}
	printf("%.2f",sum);
	return 0;
}

在这里插入图片描述

6、求阶乘的前n项和:输入一个正整数n,求e=1!+2!+3!+…+n!的值。要求定义和调用函数fact(n)计算n!,函数类型是double

#include <stdio.h>
int main()
{
	double fact(int n);
	int n,i;
	double sum=0;
	printf("输入一个正整数n:\n");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum=sum+fact(i);
	}
	printf("%f",sum);
}

//自定义求阶乘函数
double fact(int n)
{
	int i;
	double result=1;
	for (i=1;i<=n;i++)
	{
		result=result*i;
	}
	return result;
} 

在这里插入图片描述

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值