1. (10分) c-lab4-1 求e的近似值
题目描述
自然常数e可以用级数
1+1/1!+1/2!+…+1/n!
来近似计算。从键盘输入精度要求
输入描述
从键盘输入精度要求(double型)
输出描述
输出e的近似值
输入样例
0.000001
0.001
输出样例
e=2.7182818011
e=2.7182539683
用户代码
#include<stdio.h>
int main()
{
double a=1,b,i,j=1,e=1;
scanf("%lf",&b);
while(a>=b)
{
a=1;
for(i=1;i<=j;i++)
{
a=a*1.0/i;
}
e=e+a;
j++;
}
printf("e=%.10f",e);
}
最后保存时间: 2019-11-18 17:56:17
本题得分:10分(2/2)
查看最新评判结果
2. (15分) c-lab4-2 分解质因数
题目描述
将一个正整数分解质因数。例如:输入90,打印出90=233*5。
提示:对n分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已结束,打印出即可。
(2)如果n!=k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
输入描述
从键盘输入任意一个合数,如输入90
输出描述
输出90=233*5
输入样例
60
输出样例
60=223*5
用户代码
#include<stdio.h>
int main()
{
int k=2,n;
scanf("%d",&n);
printf("%d=",n);
while(n>=k)
{
if(n==k)
{
printf("%d",k);break;
}
else if(n!=k)
{
if(n%k==0)
{
printf("%d*",k);
n=n/k;
}
else if(n%k!=0)
{
k++;
}
}
}
return 0;
}
最后保存时间: 2019-11-18 19:35:58
本题得分:15分(2/2)
查看最新评判结果
3. (15分) c-lab4-4 分数统计
题目描述
某位老师需要分别统计若干个班某项考试的平均分,但每个班的人数都不相同(人数由键盘输入),请写个程序辅助他尽快完成任务。如果输入的成绩不在[0,100]范围内,则重新输入
要求保留两位小数。
输入描述
由键盘输入n+1个数,其中第一个数为班级学生人数如3,其后n个整数为这n个学生的成绩(如78 89 90)。如果学生成绩不在[0,100]范围,重新输入。
输出描述
输出这个班的平均成绩(保留两位小数)
输入样例
//以下为多组测试数据
3 78 89 90
7 80 76 89 56 95 109 78 94
输出样例
//以下为多组数据对应的输出
该班的平均分为:85.67(英文标点)
该班的平均分为:81.14
用户代码
#include<stdio.h>
int main()
{
double i,a,b,s=0,avg;
scanf("%lf",&a);
for(i=1;i<=a;i++)
{
scanf("%lf",&b);
if(b<0||b>100)
{
while(b<0||b>100)
scanf("%lf",&b);
}
s=s+b;
}
avg=s/a;
printf("该班的平均分为:%.2f",avg);
return 0;
}
最后保存时间: 2019-11-18 20:21:44
本题得分:15分(3/3)
查看最新评判结果
4. (15分) c-lab4-3 空心矩形
题目描述
根据用户输入的整数长度和宽度,用星号”*”画出一个空心矩形。
输入描述
从键盘输入长度和宽度
输出描述
空心矩形
输入样例
3 6
输出样例
用户代码
#include<stdio.h>
int main()
{
int a,b,i,j;
scanf("%d%d",&a,&b);
for(i=1;i<=a;i++)
{
if(i==1)//打印第一行
{
for(j=1;j<=b;j++)
printf("*");
printf("\n");
}
if (1<i&&i<a)//打印中间的空心行
{
printf("*");
for(j=1;j<=b-2;j++)
printf(" ");
printf("*\n");
}
if(i==a)//打印最后一行
{
for(j=1;j<=b;j++)
printf("*");
}
}
return 0;
}
最后保存时间: 2019-11-18 20:52:14
本题得分:15分(3/3)
查看最新评判结果
5. (15分) c-lab4-5 迭代法求a的平方根.
题目描述
不使用库函数sqrt(),用迭代法求a的平方根.(教材P138页,题13)
迭代公式见教材P138页,题13
要求前后两次求出的x的差的绝对值小于10的负6次方。
提示:初始的xn由程序员指定。
输入描述
从键盘输入一个正整数a
输出描述
输出该数的平方根
输入样例
100
120
输出样例
100.00的平方根为:10.00
120.00的平方根为:10.95
用户代码
#include<stdio.h>
#include<math.h>
int main()
{
double x1, x2;
double a;
scanf("%lf",&a);
x2=1.0;
for(;;)
{
x1=x2;
x2=(x1+a/x1)/2.0;
if (fabs(x1 - x2)<0.000001)
{
printf("%.2f的平方根为:%.2f",a,x2);
break;
}
}
return 0 ;
}
最后保存时间: 2019-11-18 21:06:57
本题得分:15分(2/2)
查看最新评判结果
6. (15分) c-lab4-6 求阶乘的和
题目描述
从键盘输入一个正整数,求1!+2!+3!+4+…+n!之和
输入描述
输入一个正整数n
输出描述
求1!至n!之和
输入样例
//以下为多组测试数据
3
20
输出样例
//以下为多组数据对应的测试结果
9.000000e+000
2.561327e+018
用户代码
#include<stdio.h>
int main()
{
double n,a=1,s=0;
int i,j;
scanf("%lf",&n);
for(i=1;i<=n;i++)
{
a=1;
for(j=1;j<=i;j++)
a=a*j;
s=s+a;
}
printf("%e",s);
return 0 ;
}
最后保存时间: 2019-11-18 21:20:46
本题得分:15分(2/2)
查看最新评判结果
7. (15分) c-lab4-7 判断素数
题目描述
从键盘输入一个整数,判断是否为素数
输入描述
输入一个整数
输出描述
输出该数是否为素数
输入样例
-10
10
23
输出样例
-10<=0
10 is not a prime number
23 is a prime number
用户代码
#include<stdio.h>
int main()
{
int a,i,flag;
scanf("%d",&a);
if(a<=0)
printf("%d<=0",a);
else
{
for(i=2;i<=a-1;i++)
{
if(a%i==0)
{
flag=1;break;
}
else
flag=0;
}
if(flag==0)
printf("%d is a prime number",a);
if(flag==1)
printf("%d is not a prime number",a);
}
return 0 ;
}
最后保存时间: 2019-11-18 21:39:45
本题得分:15分(3/3)