习题2
1.求整数均值:输入4个整数,计算并输出这些整数的和与平均值,其中平均值精确到小数点后1位。试编写相应程序。
#include <stdio.h>
int main()
{
int x, y, z, a, sum;
double ave;
printf("please input four number:");
scanf("%d %d %d %d", &x, &y, &z, &a);
sum = x + y + z + a;
ave = sum / 4;
printf("sum=%d\n", sum);
printf("ave=%.1f\n", ave);
return 0;
}
2.阶梯电价:为了提倡居民节约用电某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量电价上调0.05元千瓦时。输入用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)试编写相应程序。
#include <stdio.h>
int main()
{
double x, y;
printf("please input a number:");
scanf("%lf", &x);
if (x >= 0 && x <= 50)
{
y = 0.53 * x;
}
else
{
y = 0.53 * 50 + (x - 50) * 0.58;
}
printf("%.2f\n", y);
return 0;
}
3.序列求和:输入两个正整数m和n(0<m≤n),求∑(i²+1/i),结果保留6位小数。试编写相应程序。
#include <stdio.h>
int main()
{
int m, n, i;
double sum;
printf("Enter m n:");
scanf("%d %d", &m, &n);
if (m > 0 && m <= n) //判断m和n的大小关系
{
for (i = m; i <= n; i++)
{
sum = i * i + 1.0 / i; //累加求和
}
printf("sum=%.6f\n", sum);
}
else
{
printf("Invalid value\n");
}
return 0;
}
4.求交错序列前n项和:输入一个正整数n,计算交错序列1-2/3+3/5-4/7+5/9-6/11+…的前n项之和。试编写相应程序。
#include <stdio.h>
#include <math.h>
int main()
{
int n,i;
double sum=0;
printf("Enter n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum+pow(-1,i+1)*i/(2*i-1);
}
printf("%0.3f\n",sum);
return 0;
}
5.平方根求和:输入一个正整数n,计算1+√2+根号三+…+根号n的值(保留2位小数)。可包含头文件math.h,并调用sqrt()函数求平方根。试编写相应程序。
#include <stdio.h>
#include <math.h>
int main()
{
int i, n;
double sum, x;
printf("Enter n:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
x = sqrt(i);
sum = sum + x;
}
printf("sum=%.2f\n", sum);
return 0;
}
6.求给定序列前n项和(1!+2!+…):输入一个正整数n.求e=1!+2!+3!+…+n!的值。要求定义和调用函数fact(n)计算n!,函数类型是 double。试编写相应程序。
#include <stdio.h>
double fact(int n)
{
int i;
double product;
product = 1;
for (i = 1; i <= n; i++)
{
product = product * i;
}
return product;
}
int main()
{
int i, n;
double result, sum;
printf("Enter n:");
scanf("%d", &n);
sum = 0;
for (i = 1; i <= n; i++)
{
result = fact(i);
sum = sum + result;
}
printf("sum=%0.f\n", sum);
return 0;
}