仅供交流,禁止抄袭
实验一
求序列的和
【问题描述】求Y=1-1/2+1/3-1/4+…-1/2*n 的前n项之和。
【输入形式】从键盘输入n
【输出形式】输出n项和,按四舍五入的方式精确到小数点后第二位。
【样例输入】30
【样例输出】0.68
#include <stdio.h>
int main()
{
double sum=0,a;
int i,n;
scanf("%d", &n);
n=n*2;
for(i=1;i<=n;i++)
{
if(i%2!=0)
{
a=i;
}
else
{
a=-i;
}
sum+=1/a;
}
printf("%.2lf",sum);
return 0;
}
运行结果
实验二
寻找回文数
【问题描述】
所谓回文数就是将一个数从左向右读与从右向左读是一样的,例如,121和1331都是回文数。编写一个函数实现求正整数n以内的回文数。
【源文件名】
ex403.c
【输入形式】
输入一个正整数,为n的值
【输出形式】
每行输出10个回文数,每两个回文数之间用逗号分隔
【样例输入】
150
【样例输出】
0,1,2,3,4,5,6,7,8,9,
11,22,33,44,55,66,77,88,99,101,
111,121,131,141,
#include<stdio.h>
int main()
{
int n,i,sum,a,b=0;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
a=i;
sum=0;
while(a)
{
sum=sum*10+a%10;
a=a/10;
}
if(sum==i)printf("%d,",i),b++;
if (b / 10 == 1)
{
printf("\n");
b = 0;
}
}
return 0;
}
输出结果
实验三
【问题描述】
假设你每月在储蓄账户上存100元,年利率是5%,则每月的利率是0.05/12=0.00417。
第一个月后,账户上的值变成100×(1+0.00417)=100.417;
第二个月后,账户上的值变成(100+100.417)×(1+0.00417)=201.252;
第三个月后,账户上的值变成(100+201.252)×(1+0.00417)=302.507;
以此类推。
写一个函数,根据用户输入的每月存款数、年利率和月份数,计算给定月份后账户上的钱数并输出。
【源文件名】
ex404.c
【输入形式】
输入每月存款数、年利率、月份数,每两个数据之间用逗号分隔
【输出形式】
月末账户本息余额(保留小数点后两位)
【样例输入】
100,0.05,3
【样例输出】
302.51
#include<stdio.h>
int main()
{
int i,month;
double saving,rate,b;
scanf("%lf,%lf,%d",&saving,&rate,&month);
b=saving;
for(i=1;i<=month;i++)
{
saving=saving*(1+rate/12);
saving+=b;
}
saving-=b;
printf("%.2lf",saving);
return 0;
}
输出结果
实验四
求解勒让德多项式
【问题描述】
使用递归方法求n阶勒让德多项式的值,递归公式为:
image.png
其中:n和x为int型;Pn(x)为float型。
【源文件名】
ex405.c
【输入形式】
先后从键盘输入n和x,用逗号分隔
【输出形式】
若n小于0,则输出“error”。若n大于等于0,则输出Pn(x),保留小数点后两位
【样例输入】
-1,3
【样例输出】
error
【样例说明】
无
【样例输入】
2,-3
【样例输出】
-3.50
#include <stdio.h>
float p(int n, int x);
float main()
{
float r;
int s, y;
scanf("%d,%d", &s,&y);
r=p(s, y);
if(s>=0)printf("%.2f\n", r);
return 0;
}
float p(int n, int x)
{
if(n>=0)
{
if (n==0)
return 1;
else if (n==1)
return x;
else
return ((2*n-1)*x-p(n-1, x)-(n-1)*p(n-2, x))/n;
}
else
{
printf("error\n");
}
}
输出结果
实验五
【问题描述】
编写函数fac(n),用递归法求出n的阶乘(1<=n<=10)。
在main()函数中测试此函数:从键盘输入整数n,然后调用该函数并输出结果。
【输入形式】
从键盘输入整数n(1<=n<=10)。
【输出形式】
在屏幕上输出计算结果。
【样例输入】
5
【样例输出】
120
【样例说明】
5的阶乘为:5! = 120
【评分标准】
结果完全正确得20分,每个测试点4分,提交程序文件名称为c0404.c。
include<stdio.h>
int fac(int n);
int main()
{
int n;
scanf("%d",&n);
fac(n);
printf("%d",fac(n));
return 0;
}
int fac(int n)
{
int i;
long int result=1;
for(i=2;i<=n;i++)
{
result*=i;
}
return result;
}
输出结果
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)