[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;
}