7-1 求交错序列前N项和 (15分)本题要求编写程序,计算交错序列
1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,结果保留三位小数。
输入样例:
5
输出样例:
0.917
参考代码:
#include
int main()
{
int N,sign=1; //sign:控制正负号交替
double sum=0.0;
scanf("%d",&N);
for(int i=1;i<=N;i++,sign*=-1)
sum+=(double)i/(2*i-1)*sign;
printf("%.3lf\n",sum);
return 0;
}
7-2求幂级数展开的部分和(20分)已知函数ex可以展开为幂级数1+x+x2/2!+x3/3!+⋯+xk/k!+⋯。现给定一个实数x,要求利用此幂级数部分和求ex的近似值,求和一直继续到最后一项的绝对值小于0.00001。
输入格式:
输入在一行中给出一个实数x∈[0,5]。
输出格式:
在一行中输出满足条件的幂级数部分和,保留小数点后四位。
输入样例:
1.2
输出样例:
3.3201
参考代码:
#include
int main()
{
double x,sum=1,t;
int i;
scanf("%lf",&x);
for(i=1,t=1;t>=0.00001;i++)
{
t*=x/i; //构造累加项
sum+=t;
}
printf("%.4f\n",sum);
return 0;
}
7-3 正负数个数 (10分)从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量 i 统计大于零的整数个数,用变量 j 统计小于零的整数个数。
输入格式:
在一行中输入n(n<20)个用空格间隔的整数,最后输入0结束输入,数据之间只能用1个空格间隔。。
输出格式:。
在两行中分别按照“i=正数个数”和“j=负数个数”的格式输出结果,个数均原样输出,没有列宽控制。
输入样例:
-8 -9 2 5 -1 -4 0
输出样例:
i=2
j=4
参考代码:
#include
int main()
{
int i=0; //正数:Positive number
int j=0; //负数:negative
int a;
do
{
scanf ("%d",&a);
if (a>0)
i++;
else if (a<0)
j++;
}while (a!=0); //对比下这里用while,和for
printf ("i=%d\nj=%d",i,j);
return 0;
}
7-4 特殊a串数列求和 (20分)给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
输入格式:
输入在一行中给出不超过9的正整数a和n。
输出格式:
在一行中按照“s = 对应的和”的格式输出
输入样例:
2 3
输出样例:
s = 246
参考代码:
#include
int main()
{
int a,n,sum,item;
item=0;
sum=0;
scanf("%d %d",&a,&n);
for(int i=1;i<=n;i++)
{
item=item*10+a; //根据上一项构造下一项
sum+=item;
}
printf("s = %d",sum);
return 0;
}
7-5 最佳情侣身高差 (10分)专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。
下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。
输入格式:
输入第一行给出正整数N(≤10),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。
输出格式:
对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。
输入样例:
2
M 1.75
F 1.8
输出样例:
1.61
1.96
参考代码:
#include
int main()
{
int N,i;
scanf("%d",&N); //不能在scanf的字符串中写\n等转义字符
for(i=1;i<=N;i++)
{
char s;
float a;
getchar(); //吸收前一个scanf的回车。
scanf("%c %f",&s,&a);
if(s=='M')
printf("%.2f\n",a/1.09);
else
printf("%.2f\n",a*1.09);
}
return 0;
}